@ironbee-ai/cli 0.15.0 → 0.17.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 (494) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/analytics/{emit.d.ts → claude/emit.d.ts} +1 -1
  3. package/dist/analytics/claude/emit.d.ts.map +1 -0
  4. package/dist/analytics/{emit.js → claude/emit.js} +34 -7
  5. package/dist/analytics/claude/emit.js.map +1 -0
  6. package/dist/analytics/{hook-trigger.d.ts → claude/hook-trigger.d.ts} +1 -1
  7. package/dist/analytics/claude/hook-trigger.d.ts.map +1 -0
  8. package/dist/analytics/{hook-trigger.js → claude/hook-trigger.js} +2 -2
  9. package/dist/analytics/claude/hook-trigger.js.map +1 -0
  10. package/dist/analytics/claude/log.d.ts.map +1 -0
  11. package/dist/analytics/{log.js → claude/log.js} +1 -1
  12. package/dist/analytics/claude/log.js.map +1 -0
  13. package/dist/analytics/{merge.d.ts → claude/merge.d.ts} +2 -1
  14. package/dist/analytics/claude/merge.d.ts.map +1 -0
  15. package/dist/analytics/{merge.js → claude/merge.js} +13 -1
  16. package/dist/analytics/claude/merge.js.map +1 -0
  17. package/dist/analytics/{pricing.d.ts → claude/pricing.d.ts} +1 -13
  18. package/dist/analytics/claude/pricing.d.ts.map +1 -0
  19. package/dist/analytics/{pricing.js → claude/pricing.js} +6 -14
  20. package/dist/analytics/claude/pricing.js.map +1 -0
  21. package/dist/analytics/{projection.d.ts → claude/projection.d.ts} +31 -7
  22. package/dist/analytics/claude/projection.d.ts.map +1 -0
  23. package/dist/analytics/{projection.js → claude/projection.js} +631 -327
  24. package/dist/analytics/claude/projection.js.map +1 -0
  25. package/dist/analytics/{spawn.d.ts → claude/spawn.d.ts} +4 -4
  26. package/dist/analytics/claude/spawn.d.ts.map +1 -0
  27. package/dist/analytics/{spawn.js → claude/spawn.js} +4 -3
  28. package/dist/analytics/claude/spawn.js.map +1 -0
  29. package/dist/analytics/{state.d.ts → claude/state.d.ts} +1 -1
  30. package/dist/analytics/claude/state.d.ts.map +1 -0
  31. package/dist/analytics/{state.js → claude/state.js} +2 -2
  32. package/dist/analytics/claude/state.js.map +1 -0
  33. package/dist/analytics/claude/transcript.d.ts.map +1 -0
  34. package/dist/analytics/{transcript.js → claude/transcript.js} +1 -1
  35. package/dist/analytics/claude/transcript.js.map +1 -0
  36. package/dist/analytics/codex/api-request.d.ts +108 -0
  37. package/dist/analytics/codex/api-request.d.ts.map +1 -0
  38. package/dist/analytics/codex/api-request.js +155 -0
  39. package/dist/analytics/codex/api-request.js.map +1 -0
  40. package/dist/analytics/codex/apply-patch.d.ts +21 -0
  41. package/dist/analytics/codex/apply-patch.d.ts.map +1 -0
  42. package/dist/analytics/codex/apply-patch.js +49 -0
  43. package/dist/analytics/codex/apply-patch.js.map +1 -0
  44. package/dist/analytics/codex/classifier.d.ts +28 -0
  45. package/dist/analytics/codex/classifier.d.ts.map +1 -0
  46. package/dist/analytics/codex/classifier.js +111 -0
  47. package/dist/analytics/codex/classifier.js.map +1 -0
  48. package/dist/analytics/codex/emit.d.ts +47 -0
  49. package/dist/analytics/codex/emit.d.ts.map +1 -0
  50. package/dist/analytics/codex/emit.js +158 -0
  51. package/dist/analytics/codex/emit.js.map +1 -0
  52. package/dist/analytics/codex/events-emit.d.ts +62 -0
  53. package/dist/analytics/codex/events-emit.d.ts.map +1 -0
  54. package/dist/analytics/codex/events-emit.js +555 -0
  55. package/dist/analytics/codex/events-emit.js.map +1 -0
  56. package/dist/analytics/codex/pricing.d.ts +57 -0
  57. package/dist/analytics/codex/pricing.d.ts.map +1 -0
  58. package/dist/analytics/codex/pricing.js +125 -0
  59. package/dist/analytics/codex/pricing.js.map +1 -0
  60. package/dist/analytics/codex/projection.d.ts +51 -0
  61. package/dist/analytics/codex/projection.d.ts.map +1 -0
  62. package/dist/analytics/codex/projection.js +1477 -0
  63. package/dist/analytics/codex/projection.js.map +1 -0
  64. package/dist/analytics/codex/spawn.d.ts +27 -0
  65. package/dist/analytics/codex/spawn.d.ts.map +1 -0
  66. package/dist/analytics/codex/spawn.js +64 -0
  67. package/dist/analytics/codex/spawn.js.map +1 -0
  68. package/dist/analytics/codex/status-snapshot.d.ts +80 -0
  69. package/dist/analytics/codex/status-snapshot.d.ts.map +1 -0
  70. package/dist/analytics/codex/status-snapshot.js +206 -0
  71. package/dist/analytics/codex/status-snapshot.js.map +1 -0
  72. package/dist/analytics/codex/transcript.d.ts +51 -0
  73. package/dist/analytics/codex/transcript.d.ts.map +1 -0
  74. package/dist/analytics/codex/transcript.js +134 -0
  75. package/dist/analytics/codex/transcript.js.map +1 -0
  76. package/dist/analytics/codex/types.d.ts +253 -0
  77. package/dist/analytics/codex/types.d.ts.map +1 -0
  78. package/dist/analytics/codex/types.js +29 -0
  79. package/dist/analytics/codex/types.js.map +1 -0
  80. package/dist/analytics/shared/classifier.d.ts.map +1 -0
  81. package/dist/analytics/{classifier.js → shared/classifier.js} +9 -0
  82. package/dist/analytics/shared/classifier.js.map +1 -0
  83. package/dist/analytics/shared/errors.d.ts.map +1 -0
  84. package/dist/analytics/shared/errors.js.map +1 -0
  85. package/dist/analytics/shared/tokens.d.ts +14 -0
  86. package/dist/analytics/shared/tokens.d.ts.map +1 -0
  87. package/dist/analytics/shared/tokens.js +17 -0
  88. package/dist/analytics/shared/tokens.js.map +1 -0
  89. package/dist/analytics/{types.d.ts → shared/types.d.ts} +42 -9
  90. package/dist/analytics/shared/types.d.ts.map +1 -0
  91. package/dist/analytics/shared/types.js.map +1 -0
  92. package/dist/clients/base.d.ts +26 -4
  93. package/dist/clients/base.d.ts.map +1 -1
  94. package/dist/clients/claude/hooks/activity-end.js +1 -1
  95. package/dist/clients/claude/hooks/activity-end.js.map +1 -1
  96. package/dist/clients/claude/hooks/activity-start.js +1 -1
  97. package/dist/clients/claude/hooks/activity-start.js.map +1 -1
  98. package/dist/clients/claude/hooks/clear-verdict.d.ts.map +1 -1
  99. package/dist/clients/claude/hooks/clear-verdict.js +20 -1
  100. package/dist/clients/claude/hooks/clear-verdict.js.map +1 -1
  101. package/dist/clients/claude/hooks/require-verdict.d.ts +8 -1
  102. package/dist/clients/claude/hooks/require-verdict.d.ts.map +1 -1
  103. package/dist/clients/claude/hooks/require-verdict.js +9 -2
  104. package/dist/clients/claude/hooks/require-verdict.js.map +1 -1
  105. package/dist/clients/claude/hooks/require-verification.d.ts +10 -1
  106. package/dist/clients/claude/hooks/require-verification.d.ts.map +1 -1
  107. package/dist/clients/claude/hooks/require-verification.js +34 -6
  108. package/dist/clients/claude/hooks/require-verification.js.map +1 -1
  109. package/dist/clients/claude/hooks/session-end.d.ts.map +1 -1
  110. package/dist/clients/claude/hooks/session-end.js +7 -1
  111. package/dist/clients/claude/hooks/session-end.js.map +1 -1
  112. package/dist/clients/claude/hooks/session-start.d.ts.map +1 -1
  113. package/dist/clients/claude/hooks/session-start.js +7 -1
  114. package/dist/clients/claude/hooks/session-start.js.map +1 -1
  115. package/dist/clients/claude/hooks/session-status.d.ts.map +1 -1
  116. package/dist/clients/claude/hooks/session-status.js +13 -9
  117. package/dist/clients/claude/hooks/session-status.js.map +1 -1
  118. package/dist/clients/claude/hooks/track-action.d.ts.map +1 -1
  119. package/dist/clients/claude/hooks/track-action.js +26 -1
  120. package/dist/clients/claude/hooks/track-action.js.map +1 -1
  121. package/dist/clients/claude/hooks/verify-gate.d.ts.map +1 -1
  122. package/dist/clients/claude/hooks/verify-gate.js +8 -1
  123. package/dist/clients/claude/hooks/verify-gate.js.map +1 -1
  124. package/dist/clients/claude/index.d.ts +7 -2
  125. package/dist/clients/claude/index.d.ts.map +1 -1
  126. package/dist/clients/claude/index.js +72 -32
  127. package/dist/clients/claude/index.js.map +1 -1
  128. package/dist/clients/claude/util.d.ts.map +1 -1
  129. package/dist/clients/claude/util.js +55 -0
  130. package/dist/clients/claude/util.js.map +1 -1
  131. package/dist/clients/codex/commands/ironbee-verify/SKILL.md +58 -0
  132. package/dist/clients/codex/hooks/activity-end.d.ts +9 -0
  133. package/dist/clients/codex/hooks/activity-end.d.ts.map +1 -0
  134. package/dist/clients/codex/hooks/activity-end.js +65 -0
  135. package/dist/clients/codex/hooks/activity-end.js.map +1 -0
  136. package/dist/clients/codex/hooks/activity-start.d.ts +17 -0
  137. package/dist/clients/codex/hooks/activity-start.d.ts.map +1 -0
  138. package/dist/clients/codex/hooks/activity-start.js +38 -0
  139. package/dist/clients/codex/hooks/activity-start.js.map +1 -0
  140. package/dist/clients/codex/hooks/clear-verdict.d.ts +55 -0
  141. package/dist/clients/codex/hooks/clear-verdict.d.ts.map +1 -0
  142. package/dist/clients/codex/hooks/clear-verdict.js +303 -0
  143. package/dist/clients/codex/hooks/clear-verdict.js.map +1 -0
  144. package/dist/clients/codex/hooks/require-verdict.d.ts +36 -0
  145. package/dist/clients/codex/hooks/require-verdict.d.ts.map +1 -0
  146. package/dist/clients/codex/hooks/require-verdict.js +115 -0
  147. package/dist/clients/codex/hooks/require-verdict.js.map +1 -0
  148. package/dist/clients/codex/hooks/require-verification.d.ts +20 -0
  149. package/dist/clients/codex/hooks/require-verification.d.ts.map +1 -0
  150. package/dist/clients/codex/hooks/require-verification.js +156 -0
  151. package/dist/clients/codex/hooks/require-verification.js.map +1 -0
  152. package/dist/clients/codex/hooks/session-start.d.ts +10 -0
  153. package/dist/clients/codex/hooks/session-start.d.ts.map +1 -0
  154. package/dist/clients/codex/hooks/session-start.js +94 -0
  155. package/dist/clients/codex/hooks/session-start.js.map +1 -0
  156. package/dist/clients/codex/hooks/track-action-monitor.d.ts +10 -0
  157. package/dist/clients/codex/hooks/track-action-monitor.d.ts.map +1 -0
  158. package/dist/clients/codex/hooks/track-action-monitor.js +168 -0
  159. package/dist/clients/codex/hooks/track-action-monitor.js.map +1 -0
  160. package/dist/clients/codex/hooks/track-action-pre.d.ts +18 -0
  161. package/dist/clients/codex/hooks/track-action-pre.d.ts.map +1 -0
  162. package/dist/clients/codex/hooks/track-action-pre.js +35 -0
  163. package/dist/clients/codex/hooks/track-action-pre.js.map +1 -0
  164. package/dist/clients/codex/hooks/track-action.d.ts +22 -0
  165. package/dist/clients/codex/hooks/track-action.d.ts.map +1 -0
  166. package/dist/clients/codex/hooks/track-action.js +350 -0
  167. package/dist/clients/codex/hooks/track-action.js.map +1 -0
  168. package/dist/clients/codex/hooks/verify-gate.d.ts +15 -0
  169. package/dist/clients/codex/hooks/verify-gate.d.ts.map +1 -0
  170. package/dist/clients/codex/hooks/verify-gate.js +105 -0
  171. package/dist/clients/codex/hooks/verify-gate.js.map +1 -0
  172. package/dist/clients/codex/index.d.ts +52 -0
  173. package/dist/clients/codex/index.d.ts.map +1 -0
  174. package/dist/clients/codex/index.js +463 -0
  175. package/dist/clients/codex/index.js.map +1 -0
  176. package/dist/clients/codex/platforms/command-verify.backend.md +108 -0
  177. package/dist/clients/codex/platforms/command-verify.browser.md +108 -0
  178. package/dist/clients/codex/platforms/command-verify.node.md +61 -0
  179. package/dist/clients/codex/platforms/rule.backend.md +32 -0
  180. package/dist/clients/codex/platforms/rule.browser.md +17 -0
  181. package/dist/clients/codex/platforms/rule.node.md +28 -0
  182. package/dist/clients/codex/platforms/skill.backend.md +95 -0
  183. package/dist/clients/codex/platforms/skill.browser.md +28 -0
  184. package/dist/clients/codex/platforms/skill.node.md +62 -0
  185. package/dist/clients/codex/rules/ironbee-verification.md +48 -0
  186. package/dist/clients/codex/skills/ironbee-verification.md +80 -0
  187. package/dist/clients/codex/util.d.ts +193 -0
  188. package/dist/clients/codex/util.d.ts.map +1 -0
  189. package/dist/clients/codex/util.js +784 -0
  190. package/dist/clients/codex/util.js.map +1 -0
  191. package/dist/clients/cursor/hooks/activity-end.js +1 -1
  192. package/dist/clients/cursor/hooks/activity-end.js.map +1 -1
  193. package/dist/clients/cursor/hooks/clear-verdict.d.ts +5 -2
  194. package/dist/clients/cursor/hooks/clear-verdict.d.ts.map +1 -1
  195. package/dist/clients/cursor/hooks/clear-verdict.js +16 -4
  196. package/dist/clients/cursor/hooks/clear-verdict.js.map +1 -1
  197. package/dist/clients/cursor/hooks/require-verdict.d.ts +7 -1
  198. package/dist/clients/cursor/hooks/require-verdict.d.ts.map +1 -1
  199. package/dist/clients/cursor/hooks/require-verdict.js +8 -2
  200. package/dist/clients/cursor/hooks/require-verdict.js.map +1 -1
  201. package/dist/clients/cursor/hooks/require-verification.d.ts +8 -1
  202. package/dist/clients/cursor/hooks/require-verification.d.ts.map +1 -1
  203. package/dist/clients/cursor/hooks/require-verification.js +27 -6
  204. package/dist/clients/cursor/hooks/require-verification.js.map +1 -1
  205. package/dist/clients/cursor/hooks/session-end.js +1 -1
  206. package/dist/clients/cursor/hooks/session-end.js.map +1 -1
  207. package/dist/clients/cursor/hooks/verify-gate.d.ts.map +1 -1
  208. package/dist/clients/cursor/hooks/verify-gate.js +6 -1
  209. package/dist/clients/cursor/hooks/verify-gate.js.map +1 -1
  210. package/dist/clients/cursor/index.d.ts +7 -2
  211. package/dist/clients/cursor/index.d.ts.map +1 -1
  212. package/dist/clients/cursor/index.js +69 -30
  213. package/dist/clients/cursor/index.js.map +1 -1
  214. package/dist/clients/registry.d.ts.map +1 -1
  215. package/dist/clients/registry.js +2 -1
  216. package/dist/clients/registry.js.map +1 -1
  217. package/dist/commands/{claude.d.ts → claude/index.d.ts} +1 -1
  218. package/dist/commands/claude/index.d.ts.map +1 -0
  219. package/dist/commands/{claude.js → claude/index.js} +12 -6
  220. package/dist/commands/claude/index.js.map +1 -0
  221. package/dist/commands/{otel.d.ts → claude/otel.d.ts} +5 -1
  222. package/dist/commands/claude/otel.d.ts.map +1 -0
  223. package/dist/commands/{otel.js → claude/otel.js} +9 -5
  224. package/dist/commands/claude/otel.js.map +1 -0
  225. package/dist/commands/claude/process-analytics.d.ts +19 -0
  226. package/dist/commands/claude/process-analytics.d.ts.map +1 -0
  227. package/dist/commands/{process-analytics.js → claude/process-analytics.js} +16 -15
  228. package/dist/commands/claude/process-analytics.js.map +1 -0
  229. package/dist/commands/{statusline-toggle.d.ts → claude/statusline-toggle.d.ts} +2 -2
  230. package/dist/commands/claude/statusline-toggle.d.ts.map +1 -0
  231. package/dist/commands/{statusline-toggle.js → claude/statusline-toggle.js} +8 -8
  232. package/dist/commands/claude/statusline-toggle.js.map +1 -0
  233. package/dist/commands/{statusline.d.ts → claude/statusline.d.ts} +1 -1
  234. package/dist/commands/claude/statusline.d.ts.map +1 -0
  235. package/dist/commands/{statusline.js → claude/statusline.js} +4 -4
  236. package/dist/commands/claude/statusline.js.map +1 -0
  237. package/dist/commands/codex/index.d.ts +11 -0
  238. package/dist/commands/codex/index.d.ts.map +1 -0
  239. package/dist/commands/codex/index.js +17 -0
  240. package/dist/commands/codex/index.js.map +1 -0
  241. package/dist/commands/codex/process-analytics.d.ts +14 -0
  242. package/dist/commands/codex/process-analytics.d.ts.map +1 -0
  243. package/dist/commands/codex/process-analytics.js +111 -0
  244. package/dist/commands/codex/process-analytics.js.map +1 -0
  245. package/dist/commands/hook.js +16 -2
  246. package/dist/commands/hook.js.map +1 -1
  247. package/dist/commands/import.js +3 -3
  248. package/dist/commands/import.js.map +1 -1
  249. package/dist/commands/queue.js +3 -1
  250. package/dist/commands/queue.js.map +1 -1
  251. package/dist/commands/verification-toggle.d.ts +19 -0
  252. package/dist/commands/verification-toggle.d.ts.map +1 -1
  253. package/dist/commands/verification-toggle.js +88 -5
  254. package/dist/commands/verification-toggle.js.map +1 -1
  255. package/dist/commands/verification.d.ts +3 -0
  256. package/dist/commands/verification.d.ts.map +1 -1
  257. package/dist/commands/verification.js +34 -3
  258. package/dist/commands/verification.js.map +1 -1
  259. package/dist/hooks/core/actions.d.ts +17 -1
  260. package/dist/hooks/core/actions.d.ts.map +1 -1
  261. package/dist/hooks/core/actions.js +13 -0
  262. package/dist/hooks/core/actions.js.map +1 -1
  263. package/dist/hooks/core/activity-end.d.ts +8 -0
  264. package/dist/hooks/core/activity-end.d.ts.map +1 -1
  265. package/dist/hooks/core/activity-end.js +19 -0
  266. package/dist/hooks/core/activity-end.js.map +1 -1
  267. package/dist/hooks/core/session-state.d.ts +15 -1
  268. package/dist/hooks/core/session-state.d.ts.map +1 -1
  269. package/dist/hooks/core/session-state.js +102 -7
  270. package/dist/hooks/core/session-state.js.map +1 -1
  271. package/dist/hooks/core/submit-verdict.d.ts.map +1 -1
  272. package/dist/hooks/core/submit-verdict.js +29 -17
  273. package/dist/hooks/core/submit-verdict.js.map +1 -1
  274. package/dist/hooks/core/verification-lifecycle.d.ts +20 -0
  275. package/dist/hooks/core/verification-lifecycle.d.ts.map +1 -1
  276. package/dist/hooks/core/verification-lifecycle.js +41 -0
  277. package/dist/hooks/core/verification-lifecycle.js.map +1 -1
  278. package/dist/hooks/core/verify-gate.d.ts.map +1 -1
  279. package/dist/hooks/core/verify-gate.js +11 -5
  280. package/dist/hooks/core/verify-gate.js.map +1 -1
  281. package/dist/import/claude/analytics-runner.d.ts +1 -1
  282. package/dist/import/claude/analytics-runner.d.ts.map +1 -1
  283. package/dist/import/claude/analytics-runner.js +5 -5
  284. package/dist/import/claude/analytics-runner.js.map +1 -1
  285. package/dist/import/claude/auth-mode.d.ts +1 -1
  286. package/dist/import/claude/auth-mode.d.ts.map +1 -1
  287. package/dist/import/claude/discovery.js +1 -1
  288. package/dist/import/claude/discovery.js.map +1 -1
  289. package/dist/import/claude/encoding.js +1 -1
  290. package/dist/import/claude/encoding.js.map +1 -1
  291. package/dist/import/claude/events/file-change.d.ts +10 -1
  292. package/dist/import/claude/events/file-change.d.ts.map +1 -1
  293. package/dist/import/claude/events/file-change.js +79 -5
  294. package/dist/import/claude/events/file-change.js.map +1 -1
  295. package/dist/import/claude/events/tool-call.d.ts +16 -1
  296. package/dist/import/claude/events/tool-call.d.ts.map +1 -1
  297. package/dist/import/claude/events/tool-call.js +122 -15
  298. package/dist/import/claude/events/tool-call.js.map +1 -1
  299. package/dist/import/claude/runner.d.ts.map +1 -1
  300. package/dist/import/claude/runner.js +45 -3
  301. package/dist/import/claude/runner.js.map +1 -1
  302. package/dist/import/claude/summary.js +1 -1
  303. package/dist/import/claude/summary.js.map +1 -1
  304. package/dist/import/claude/transcript-walk.d.ts +1 -1
  305. package/dist/import/claude/transcript-walk.d.ts.map +1 -1
  306. package/dist/import/claude/transcript-walk.js +11 -4
  307. package/dist/import/claude/transcript-walk.js.map +1 -1
  308. package/dist/import/codex/analytics-runner.d.ts +46 -0
  309. package/dist/import/codex/analytics-runner.d.ts.map +1 -0
  310. package/dist/import/codex/analytics-runner.js +116 -0
  311. package/dist/import/codex/analytics-runner.js.map +1 -0
  312. package/dist/import/codex/discovery.d.ts +33 -0
  313. package/dist/import/codex/discovery.d.ts.map +1 -0
  314. package/dist/import/codex/discovery.js +202 -0
  315. package/dist/import/codex/discovery.js.map +1 -0
  316. package/dist/import/codex/events/file-change.d.ts +42 -0
  317. package/dist/import/codex/events/file-change.d.ts.map +1 -0
  318. package/dist/import/codex/events/file-change.js +125 -0
  319. package/dist/import/codex/events/file-change.js.map +1 -0
  320. package/dist/import/codex/events/tool-call.d.ts +49 -0
  321. package/dist/import/codex/events/tool-call.d.ts.map +1 -0
  322. package/dist/import/codex/events/tool-call.js +151 -0
  323. package/dist/import/codex/events/tool-call.js.map +1 -0
  324. package/dist/import/codex/runner.d.ts +34 -0
  325. package/dist/import/codex/runner.d.ts.map +1 -0
  326. package/dist/import/codex/runner.js +456 -0
  327. package/dist/import/codex/runner.js.map +1 -0
  328. package/dist/import/codex/summary.d.ts +20 -0
  329. package/dist/import/codex/summary.d.ts.map +1 -0
  330. package/dist/import/codex/summary.js +206 -0
  331. package/dist/import/codex/summary.js.map +1 -0
  332. package/dist/import/events/activity.d.ts.map +1 -1
  333. package/dist/import/events/activity.js +17 -2
  334. package/dist/import/events/activity.js.map +1 -1
  335. package/dist/import/events/session.d.ts +11 -1
  336. package/dist/import/events/session.d.ts.map +1 -1
  337. package/dist/import/events/session.js +19 -1
  338. package/dist/import/events/session.js.map +1 -1
  339. package/dist/import/ids.js +3 -3
  340. package/dist/import/ids.js.map +1 -1
  341. package/dist/import/pipeline.d.ts +22 -15
  342. package/dist/import/pipeline.d.ts.map +1 -1
  343. package/dist/import/pipeline.js +99 -18
  344. package/dist/import/pipeline.js.map +1 -1
  345. package/dist/import/types.d.ts +4 -0
  346. package/dist/import/types.d.ts.map +1 -1
  347. package/dist/import/types.js.map +1 -1
  348. package/dist/index.js +9 -11
  349. package/dist/index.js.map +1 -1
  350. package/dist/lib/collector.d.ts +2 -1
  351. package/dist/lib/collector.d.ts.map +1 -1
  352. package/dist/lib/collector.js +28 -3
  353. package/dist/lib/collector.js.map +1 -1
  354. package/dist/lib/config.d.ts +40 -0
  355. package/dist/lib/config.d.ts.map +1 -1
  356. package/dist/lib/config.js +52 -1
  357. package/dist/lib/config.js.map +1 -1
  358. package/dist/lib/event.d.ts +18 -1
  359. package/dist/lib/event.d.ts.map +1 -1
  360. package/dist/lib/event.js +25 -1
  361. package/dist/lib/event.js.map +1 -1
  362. package/dist/lib/platform-section.d.ts.map +1 -1
  363. package/dist/lib/platform-section.js +8 -0
  364. package/dist/lib/platform-section.js.map +1 -1
  365. package/dist/otel/{context → claude/context}/build.d.ts +1 -1
  366. package/dist/otel/claude/context/build.d.ts.map +1 -0
  367. package/dist/otel/{context → claude/context}/build.js +3 -7
  368. package/dist/otel/claude/context/build.js.map +1 -0
  369. package/dist/otel/claude/context/classify.d.ts.map +1 -0
  370. package/dist/otel/claude/context/classify.js.map +1 -0
  371. package/dist/otel/{context → claude/context}/extract.d.ts +1 -1
  372. package/dist/otel/claude/context/extract.d.ts.map +1 -0
  373. package/dist/otel/claude/context/extract.js.map +1 -0
  374. package/dist/otel/claude/context/markers.d.ts.map +1 -0
  375. package/dist/otel/{context → claude/context}/markers.js +22 -3
  376. package/dist/otel/claude/context/markers.js.map +1 -0
  377. package/dist/otel/claude/context/util.d.ts.map +1 -0
  378. package/dist/otel/claude/context/util.js.map +1 -0
  379. package/dist/otel/{daemon → claude/daemon}/ensure.d.ts +1 -1
  380. package/dist/otel/claude/daemon/ensure.d.ts.map +1 -0
  381. package/dist/otel/{daemon → claude/daemon}/ensure.js +6 -6
  382. package/dist/otel/claude/daemon/ensure.js.map +1 -0
  383. package/dist/otel/{daemon → claude/daemon}/forward.d.ts +1 -1
  384. package/dist/otel/claude/daemon/forward.d.ts.map +1 -0
  385. package/dist/otel/{daemon → claude/daemon}/forward.js +0 -0
  386. package/dist/otel/claude/daemon/forward.js.map +1 -0
  387. package/dist/otel/claude/daemon/paths.d.ts.map +1 -0
  388. package/dist/otel/claude/daemon/paths.js.map +1 -0
  389. package/dist/otel/{daemon → claude/daemon}/process.d.ts +1 -1
  390. package/dist/otel/claude/daemon/process.d.ts.map +1 -0
  391. package/dist/otel/{daemon → claude/daemon}/process.js +1 -1
  392. package/dist/otel/claude/daemon/process.js.map +1 -0
  393. package/dist/otel/claude/daemon/reprocess.d.ts.map +1 -0
  394. package/dist/otel/{daemon → claude/daemon}/reprocess.js +2 -2
  395. package/dist/otel/claude/daemon/reprocess.js.map +1 -0
  396. package/dist/otel/claude/log-handler.d.ts.map +1 -0
  397. package/dist/otel/{log-handler.js → claude/log-handler.js} +1 -1
  398. package/dist/otel/claude/log-handler.js.map +1 -0
  399. package/dist/otel/collector.js +4 -4
  400. package/dist/otel/collector.js.map +1 -1
  401. package/dist/queue/flush.d.ts +23 -0
  402. package/dist/queue/flush.d.ts.map +1 -1
  403. package/dist/queue/flush.js +44 -0
  404. package/dist/queue/flush.js.map +1 -1
  405. package/dist/queue/handlers/send-event.d.ts.map +1 -1
  406. package/dist/queue/handlers/send-event.js +5 -4
  407. package/dist/queue/handlers/send-event.js.map +1 -1
  408. package/dist/queue/index.d.ts +2 -2
  409. package/dist/queue/index.d.ts.map +1 -1
  410. package/dist/queue/index.js +4 -1
  411. package/dist/queue/index.js.map +1 -1
  412. package/dist/queue/spawn.d.ts +20 -0
  413. package/dist/queue/spawn.d.ts.map +1 -1
  414. package/dist/queue/spawn.js +37 -0
  415. package/dist/queue/spawn.js.map +1 -1
  416. package/dist/tui/config/schema.d.ts.map +1 -1
  417. package/dist/tui/config/schema.js +8 -0
  418. package/dist/tui/config/schema.js.map +1 -1
  419. package/dist/tui/import/area.js +3 -3
  420. package/dist/tui/import/area.js.map +1 -1
  421. package/package.json +2 -1
  422. package/dist/analytics/classifier.d.ts.map +0 -1
  423. package/dist/analytics/classifier.js.map +0 -1
  424. package/dist/analytics/emit.d.ts.map +0 -1
  425. package/dist/analytics/emit.js.map +0 -1
  426. package/dist/analytics/errors.d.ts.map +0 -1
  427. package/dist/analytics/errors.js.map +0 -1
  428. package/dist/analytics/hook-trigger.d.ts.map +0 -1
  429. package/dist/analytics/hook-trigger.js.map +0 -1
  430. package/dist/analytics/log.d.ts.map +0 -1
  431. package/dist/analytics/log.js.map +0 -1
  432. package/dist/analytics/merge.d.ts.map +0 -1
  433. package/dist/analytics/merge.js.map +0 -1
  434. package/dist/analytics/pricing.d.ts.map +0 -1
  435. package/dist/analytics/pricing.js.map +0 -1
  436. package/dist/analytics/projection.d.ts.map +0 -1
  437. package/dist/analytics/projection.js.map +0 -1
  438. package/dist/analytics/spawn.d.ts.map +0 -1
  439. package/dist/analytics/spawn.js.map +0 -1
  440. package/dist/analytics/state.d.ts.map +0 -1
  441. package/dist/analytics/state.js.map +0 -1
  442. package/dist/analytics/transcript.d.ts.map +0 -1
  443. package/dist/analytics/transcript.js.map +0 -1
  444. package/dist/analytics/types.d.ts.map +0 -1
  445. package/dist/analytics/types.js.map +0 -1
  446. package/dist/commands/claude.d.ts.map +0 -1
  447. package/dist/commands/claude.js.map +0 -1
  448. package/dist/commands/otel.d.ts.map +0 -1
  449. package/dist/commands/otel.js.map +0 -1
  450. package/dist/commands/process-analytics.d.ts +0 -18
  451. package/dist/commands/process-analytics.d.ts.map +0 -1
  452. package/dist/commands/process-analytics.js.map +0 -1
  453. package/dist/commands/statusline-toggle.d.ts.map +0 -1
  454. package/dist/commands/statusline-toggle.js.map +0 -1
  455. package/dist/commands/statusline.d.ts.map +0 -1
  456. package/dist/commands/statusline.js.map +0 -1
  457. package/dist/otel/context/build.d.ts.map +0 -1
  458. package/dist/otel/context/build.js.map +0 -1
  459. package/dist/otel/context/classify.d.ts.map +0 -1
  460. package/dist/otel/context/classify.js.map +0 -1
  461. package/dist/otel/context/extract.d.ts.map +0 -1
  462. package/dist/otel/context/extract.js.map +0 -1
  463. package/dist/otel/context/markers.d.ts.map +0 -1
  464. package/dist/otel/context/markers.js.map +0 -1
  465. package/dist/otel/context/util.d.ts.map +0 -1
  466. package/dist/otel/context/util.js.map +0 -1
  467. package/dist/otel/daemon/ensure.d.ts.map +0 -1
  468. package/dist/otel/daemon/ensure.js.map +0 -1
  469. package/dist/otel/daemon/forward.d.ts.map +0 -1
  470. package/dist/otel/daemon/forward.js.map +0 -1
  471. package/dist/otel/daemon/paths.d.ts.map +0 -1
  472. package/dist/otel/daemon/paths.js.map +0 -1
  473. package/dist/otel/daemon/process.d.ts.map +0 -1
  474. package/dist/otel/daemon/process.js.map +0 -1
  475. package/dist/otel/daemon/reprocess.d.ts.map +0 -1
  476. package/dist/otel/daemon/reprocess.js.map +0 -1
  477. package/dist/otel/log-handler.d.ts.map +0 -1
  478. package/dist/otel/log-handler.js.map +0 -1
  479. /package/dist/analytics/{log.d.ts → claude/log.d.ts} +0 -0
  480. /package/dist/analytics/{transcript.d.ts → claude/transcript.d.ts} +0 -0
  481. /package/dist/analytics/{classifier.d.ts → shared/classifier.d.ts} +0 -0
  482. /package/dist/analytics/{errors.d.ts → shared/errors.d.ts} +0 -0
  483. /package/dist/analytics/{errors.js → shared/errors.js} +0 -0
  484. /package/dist/analytics/{types.js → shared/types.js} +0 -0
  485. /package/dist/otel/{context → claude/context}/classify.d.ts +0 -0
  486. /package/dist/otel/{context → claude/context}/classify.js +0 -0
  487. /package/dist/otel/{context → claude/context}/extract.js +0 -0
  488. /package/dist/otel/{context → claude/context}/markers.d.ts +0 -0
  489. /package/dist/otel/{context → claude/context}/util.d.ts +0 -0
  490. /package/dist/otel/{context → claude/context}/util.js +0 -0
  491. /package/dist/otel/{daemon → claude/daemon}/paths.d.ts +0 -0
  492. /package/dist/otel/{daemon → claude/daemon}/paths.js +0 -0
  493. /package/dist/otel/{daemon → claude/daemon}/reprocess.d.ts +0 -0
  494. /package/dist/otel/{log-handler.d.ts → claude/log-handler.d.ts} +0 -0
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ /**
3
+ * Codex `apply_patch` tool — wrapper around the parser already implemented
4
+ * for the `clear-verdict` hook. Analytics derives code_changes metrics
5
+ * (files_modified / lines_added / lines_removed) by parsing apply_patch
6
+ * function_call arguments.
7
+ *
8
+ * Keeping a thin wrapper here so analytics never imports from the hook
9
+ * adapter layer directly — keeps `src/analytics/` host-agnostic.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.parseApplyPatchBody = void 0;
13
+ exports.extractApplyPatchBody = extractApplyPatchBody;
14
+ const clear_verdict_1 = require("../../clients/codex/hooks/clear-verdict");
15
+ Object.defineProperty(exports, "parseApplyPatchBody", { enumerable: true, get: function () { return clear_verdict_1.parseApplyPatchBody; } });
16
+ /**
17
+ * Extract the patch body string from an `apply_patch` function_call's
18
+ * `arguments` JSON. Codex's wire shape is `{"input": "<patch text>"}`
19
+ * (custom_tool_call form — verified live on 0.135.0).
20
+ *
21
+ * Returns null when the shape doesn't match (e.g. tool renamed, args
22
+ * malformed, body missing). Caller should skip code_changes derivation.
23
+ */
24
+ function extractApplyPatchBody(argumentsJson) {
25
+ try {
26
+ const parsed = JSON.parse(argumentsJson);
27
+ if (parsed !== null && typeof parsed === "object") {
28
+ const obj = parsed;
29
+ const input = obj.input;
30
+ if (typeof input === "string" && input.length > 0) {
31
+ return input;
32
+ }
33
+ // Some Codex variants use "patch" or top-level "command"
34
+ const patch = obj.patch;
35
+ if (typeof patch === "string" && patch.length > 0) {
36
+ return patch;
37
+ }
38
+ const command = obj.command;
39
+ if (typeof command === "string" && command.length > 0) {
40
+ return command;
41
+ }
42
+ }
43
+ }
44
+ catch {
45
+ // fall through
46
+ }
47
+ return null;
48
+ }
49
+ //# sourceMappingURL=apply-patch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-patch.js","sourceRoot":"","sources":["../../../src/analytics/codex/apply-patch.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAcH,sDAuBC;AAnCD,2EAA8F;AAErF,oGAFA,mCAAmB,OAEA;AAE5B;;;;;;;GAOG;AACH,SAAgB,qBAAqB,CAAC,aAAqB;IACvD,IAAI,CAAC;QACD,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAClD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChD,MAAM,GAAG,GAA4B,MAAiC,CAAC;YACvE,MAAM,KAAK,GAAY,GAAG,CAAC,KAAK,CAAC;YACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,yDAAyD;YACzD,MAAM,KAAK,GAAY,GAAG,CAAC,KAAK,CAAC;YACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,MAAM,OAAO,GAAY,GAAG,CAAC,OAAO,CAAC;YACrC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpD,OAAO,OAAO,CAAC;YACnB,CAAC;QACL,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACL,eAAe;IACnB,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Codex turn classifier — maps the dominant `function_call.name`s in a turn
3
+ * to one of IronBee's analytics categories. Mirrors the Claude classifier
4
+ * pattern but Codex tool names differ:
5
+ * - Claude: Bash, Read, Write, Edit, Grep, Glob, Task, WebFetch, ...
6
+ * - Codex: exec_command (Bash equivalent), apply_patch, update_plan,
7
+ * mcp__*-devtools__* (verification), other MCP tools
8
+ *
9
+ * Returns the same category vocabulary the Claude side uses so dashboards
10
+ * stay uniform: "coding" / "verification" / "shell" / "planning" /
11
+ * "research" / "filesystem" / "other".
12
+ */
13
+ export type CodexTurnCategory = "coding" | "verification" | "shell" | "planning" | "research" | "filesystem" | "other";
14
+ /**
15
+ * Classify a single tool name. `null` returns "other" — caller may decide
16
+ * a turn-level category from per-tool counts.
17
+ */
18
+ export declare function classifyCodexToolName(name: string | null | undefined): CodexTurnCategory;
19
+ /**
20
+ * Determine the dominant category for a turn given counts per tool. Returns
21
+ * the category with the highest tool-call count; ties broken by the
22
+ * priority order embedded in the switch fallthrough (verification beats
23
+ * coding beats planning beats shell beats research beats filesystem).
24
+ *
25
+ * Returns "other" when no tools were called.
26
+ */
27
+ export declare function dominantCodexTurnCategory(toolCounts: Record<string, number>): CodexTurnCategory;
28
+ //# sourceMappingURL=classifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../../../src/analytics/codex/classifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,iBAAiB,GACvB,QAAQ,GACR,cAAc,GACd,OAAO,GACP,UAAU,GACV,UAAU,GACV,YAAY,GACZ,OAAO,CAAC;AAEd;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,iBAAiB,CAiDxF;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,iBAAiB,CA+B/F"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ /**
3
+ * Codex turn classifier — maps the dominant `function_call.name`s in a turn
4
+ * to one of IronBee's analytics categories. Mirrors the Claude classifier
5
+ * pattern but Codex tool names differ:
6
+ * - Claude: Bash, Read, Write, Edit, Grep, Glob, Task, WebFetch, ...
7
+ * - Codex: exec_command (Bash equivalent), apply_patch, update_plan,
8
+ * mcp__*-devtools__* (verification), other MCP tools
9
+ *
10
+ * Returns the same category vocabulary the Claude side uses so dashboards
11
+ * stay uniform: "coding" / "verification" / "shell" / "planning" /
12
+ * "research" / "filesystem" / "other".
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.classifyCodexToolName = classifyCodexToolName;
16
+ exports.dominantCodexTurnCategory = dominantCodexTurnCategory;
17
+ /**
18
+ * Classify a single tool name. `null` returns "other" — caller may decide
19
+ * a turn-level category from per-tool counts.
20
+ */
21
+ function classifyCodexToolName(name) {
22
+ if (!name) {
23
+ return "other";
24
+ }
25
+ if (name === "apply_patch") {
26
+ return "coding";
27
+ }
28
+ if (name === "update_plan") {
29
+ return "planning";
30
+ }
31
+ if (name === "exec_command" || name === "Bash") {
32
+ return "shell";
33
+ }
34
+ // Codex 0.135+ `write_stdin` writes characters into an open
35
+ // exec_command session's stdin (REPL prompts, interactive CLI flows).
36
+ // Semantically a shell-IO continuation of exec_command, so bucket
37
+ // alongside it; without this branch every write_stdin call falls
38
+ // through to "other" and the turn-category histogram understates
39
+ // shell-driven verification on sessions that drive REPLs.
40
+ if (name === "write_stdin") {
41
+ return "shell";
42
+ }
43
+ if (name === "read_file" || name === "list_dir" || name === "glob") {
44
+ return "filesystem";
45
+ }
46
+ // Codex 0.135+ `view_image` reads an image file from disk for visual
47
+ // inspection (screenshots, diagrams). Same filesystem-read semantic
48
+ // as `read_file` — without this branch every view_image call lands
49
+ // in "other", under-attributing visual-verification turns to
50
+ // filesystem-explore activity.
51
+ if (name === "view_image") {
52
+ return "filesystem";
53
+ }
54
+ if (name === "web_search" || name === "web_fetch") {
55
+ return "research";
56
+ }
57
+ // MCP devtools tools belong to verification regardless of cycle.
58
+ // BOTH wire shapes: `mcp__<server>__<tool>` (hook stdin) and bare
59
+ // `bdt_*` / `ndt_*` / `bedt_*` (rollout JSONL — empirically the
60
+ // dominant case). Without bare-prefix detection, every Codex session
61
+ // that ran browser/node/backend MCP tools reports zero "verification"
62
+ // category turns even when all the agent did was verify.
63
+ if (/^mcp__(?:browser|node|backend)[-_]devtools__/.test(name)) {
64
+ return "verification";
65
+ }
66
+ if (/^(bdt|ndt|bedt)_/.test(name)) {
67
+ return "verification";
68
+ }
69
+ return "other";
70
+ }
71
+ /**
72
+ * Determine the dominant category for a turn given counts per tool. Returns
73
+ * the category with the highest tool-call count; ties broken by the
74
+ * priority order embedded in the switch fallthrough (verification beats
75
+ * coding beats planning beats shell beats research beats filesystem).
76
+ *
77
+ * Returns "other" when no tools were called.
78
+ */
79
+ function dominantCodexTurnCategory(toolCounts) {
80
+ const tally = {
81
+ coding: 0,
82
+ verification: 0,
83
+ shell: 0,
84
+ planning: 0,
85
+ research: 0,
86
+ filesystem: 0,
87
+ other: 0,
88
+ };
89
+ for (const [name, count] of Object.entries(toolCounts)) {
90
+ tally[classifyCodexToolName(name)] += count;
91
+ }
92
+ let best = "other";
93
+ let bestCount = 0;
94
+ const priority = [
95
+ "verification",
96
+ "coding",
97
+ "planning",
98
+ "shell",
99
+ "research",
100
+ "filesystem",
101
+ "other",
102
+ ];
103
+ for (const cat of priority) {
104
+ if (tally[cat] > bestCount) {
105
+ best = cat;
106
+ bestCount = tally[cat];
107
+ }
108
+ }
109
+ return best;
110
+ }
111
+ //# sourceMappingURL=classifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../../src/analytics/codex/classifier.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;AAeH,sDAiDC;AAUD,8DA+BC;AA9FD;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,IAA+B;IACjE,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC;IACtB,CAAC;IACD,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QAC7C,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,4DAA4D;IAC5D,sEAAsE;IACtE,kEAAkE;IAClE,iEAAiE;IACjE,iEAAiE;IACjE,0DAA0D;IAC1D,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACjE,OAAO,YAAY,CAAC;IACxB,CAAC;IACD,qEAAqE;IACrE,oEAAoE;IACpE,mEAAmE;IACnE,6DAA6D;IAC7D,+BAA+B;IAC/B,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QACxB,OAAO,YAAY,CAAC;IACxB,CAAC;IACD,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QAChD,OAAO,UAAU,CAAC;IACtB,CAAC;IACD,iEAAiE;IACjE,kEAAkE;IAClE,gEAAgE;IAChE,qEAAqE;IACrE,sEAAsE;IACtE,yDAAyD;IACzD,IAAI,8CAA8C,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5D,OAAO,cAAc,CAAC;IAC1B,CAAC;IACD,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,cAAc,CAAC;IAC1B,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,yBAAyB,CAAC,UAAkC;IACxE,MAAM,KAAK,GAAsC;QAC7C,MAAM,EAAE,CAAC;QACT,YAAY,EAAE,CAAC;QACf,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC;QACb,KAAK,EAAE,CAAC;KACX,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACrD,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;IAChD,CAAC;IACD,IAAI,IAAI,GAAsB,OAAO,CAAC;IACtC,IAAI,SAAS,GAAW,CAAC,CAAC;IAC1B,MAAM,QAAQ,GAAwB;QAClC,cAAc;QACd,QAAQ;QACR,UAAU;QACV,OAAO;QACP,UAAU;QACV,YAAY;QACZ,OAAO;KACV,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC;YACzB,IAAI,GAAG,GAAG,CAAC;YACX,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Codex `session_analytics` Stop-hook orchestrator.
3
+ *
4
+ * Called from the detached `ironbee codex process-analytics` worker. Reads
5
+ * the FULL rollout at each Stop (from zero), projects it with
6
+ * `projectCodexDelta`, and submits ONE `session_analytics` master event
7
+ * (deterministic id per session → backend latest-wins). Stop-hook emission
8
+ * is gated by `analytics.emitOnStop` (default true) — when disabled, only
9
+ * the SessionEnd-equivalent (live path passes isFinal:false, so the gate
10
+ * relies on emitOnStop; import path always emits via the SessionEnd
11
+ * trigger). Worker passes `isFinal: false` per Round 8 fix (Codex has no
12
+ * true SessionEnd, every Stop is a checkpoint).
13
+ *
14
+ * `session_turn_analytics` is intentionally OUT OF SCOPE on Codex (see
15
+ * `projection.ts` module docstring).
16
+ * The master record's `category_breakdown` + session-level
17
+ * aggregates carry the same signals that turn-level emission would have.
18
+ *
19
+ * Trade-off: from-zero parse on each Stop wastes a bit of CPU vs cursor-
20
+ * incremental, but the rollout is typically <500KB and parse runs in
21
+ * the DETACHED worker so the hook is never blocked. Eliminates accumulated
22
+ * merge state — simpler + idempotent.
23
+ *
24
+ * Independent of Claude's `emit.ts` — Codex projection consumes the
25
+ * RolloutItem enum, not Claude's transcript message lines.
26
+ */
27
+ import { CodexRolloutLine } from "./types";
28
+ export interface EmitCodexSessionAnalyticsOpts {
29
+ projectDir: string;
30
+ sessionId: string;
31
+ rolloutPath?: string;
32
+ /**
33
+ * Pre-parsed rollout lines (worker-shared across pipelines to avoid
34
+ * a second file read + parse pass). When provided, the function skips
35
+ * its own `readFileSync` + JSON.parse. When omitted, falls back to
36
+ * the local from-zero `parseRollout` call.
37
+ */
38
+ preloadedLines?: CodexRolloutLine[];
39
+ isFinal?: boolean;
40
+ endReason?: string;
41
+ userEmail?: string;
42
+ usageType?: "api" | "subscription";
43
+ usagePlan?: string;
44
+ }
45
+ /** Stop-hook orchestrator. Fail-safe — silent on every failure. */
46
+ export declare function emitCodexSessionAnalytics(opts: EmitCodexSessionAnalyticsOpts): Promise<void>;
47
+ //# sourceMappingURL=emit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit.d.ts","sourceRoot":"","sources":["../../../src/analytics/codex/emit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAmBH,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAiB3C,MAAM,WAAW,6BAA6B;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,KAAK,GAAG,cAAc,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,mEAAmE;AACnE,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CAwGlG"}
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ /**
3
+ * Codex `session_analytics` Stop-hook orchestrator.
4
+ *
5
+ * Called from the detached `ironbee codex process-analytics` worker. Reads
6
+ * the FULL rollout at each Stop (from zero), projects it with
7
+ * `projectCodexDelta`, and submits ONE `session_analytics` master event
8
+ * (deterministic id per session → backend latest-wins). Stop-hook emission
9
+ * is gated by `analytics.emitOnStop` (default true) — when disabled, only
10
+ * the SessionEnd-equivalent (live path passes isFinal:false, so the gate
11
+ * relies on emitOnStop; import path always emits via the SessionEnd
12
+ * trigger). Worker passes `isFinal: false` per Round 8 fix (Codex has no
13
+ * true SessionEnd, every Stop is a checkpoint).
14
+ *
15
+ * `session_turn_analytics` is intentionally OUT OF SCOPE on Codex (see
16
+ * `projection.ts` module docstring).
17
+ * The master record's `category_breakdown` + session-level
18
+ * aggregates carry the same signals that turn-level emission would have.
19
+ *
20
+ * Trade-off: from-zero parse on each Stop wastes a bit of CPU vs cursor-
21
+ * incremental, but the rollout is typically <500KB and parse runs in
22
+ * the DETACHED worker so the hook is never blocked. Eliminates accumulated
23
+ * merge state — simpler + idempotent.
24
+ *
25
+ * Independent of Claude's `emit.ts` — Codex projection consumes the
26
+ * RolloutItem enum, not Claude's transcript message lines.
27
+ */
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.emitCodexSessionAnalytics = emitCodexSessionAnalytics;
30
+ const fs_1 = require("fs");
31
+ const logger_1 = require("../../lib/logger");
32
+ const actions_1 = require("../../hooks/core/actions");
33
+ const collector_1 = require("../../lib/collector");
34
+ const config_1 = require("../../lib/config");
35
+ const projection_1 = require("./projection");
36
+ const transcript_1 = require("./transcript");
37
+ function parseRollout(path) {
38
+ const raw = (0, fs_1.readFileSync)(path, "utf-8");
39
+ const out = [];
40
+ for (const line of raw.split("\n")) {
41
+ if (line.length === 0) {
42
+ continue;
43
+ }
44
+ try {
45
+ out.push(JSON.parse(line));
46
+ }
47
+ catch {
48
+ // malformed line — skip
49
+ }
50
+ }
51
+ return out;
52
+ }
53
+ /** Stop-hook orchestrator. Fail-safe — silent on every failure. */
54
+ async function emitCodexSessionAnalytics(opts) {
55
+ if (!(0, config_1.isAnalyticsEnabled)(opts.projectDir)) {
56
+ logger_1.logger.debug(`codex emit: analytics disabled`);
57
+ return;
58
+ }
59
+ // Claude-parity: use the same git-aware project-name resolution as
60
+ // Claude's emit pipeline (`hooks/core/actions.ts:resolveProjectName`).
61
+ // Plain `basename(projectDir)` diverges when Codex is launched from a
62
+ // subdir vs Claude operating on the same project from the git root —
63
+ // backend grouping by `project_name` then sees two distinct sessions for
64
+ // the same project.
65
+ const projectName = (0, actions_1.resolveProjectName)(opts.projectDir);
66
+ let lines;
67
+ if (opts.preloadedLines !== undefined) {
68
+ // Worker-provided cache — skip the file read entirely.
69
+ lines = opts.preloadedLines;
70
+ }
71
+ else {
72
+ let rolloutPath = opts.rolloutPath ?? null;
73
+ if (rolloutPath === null || !(0, fs_1.existsSync)(rolloutPath)) {
74
+ rolloutPath = (0, transcript_1.findCodexRolloutPath)(opts.sessionId);
75
+ }
76
+ if (rolloutPath === null) {
77
+ logger_1.logger.debug(`codex emit: rollout not found for ${opts.sessionId}`);
78
+ return;
79
+ }
80
+ try {
81
+ lines = parseRollout(rolloutPath);
82
+ }
83
+ catch (e) {
84
+ logger_1.logger.debug(`codex emit: rollout parse failed: ${e instanceof Error ? e.message : e}`);
85
+ return;
86
+ }
87
+ }
88
+ if (lines.length === 0) {
89
+ return;
90
+ }
91
+ let projection;
92
+ try {
93
+ projection = (0, projection_1.projectCodexDelta)({
94
+ sessionId: opts.sessionId,
95
+ projectName,
96
+ userEmail: opts.userEmail,
97
+ lines,
98
+ endReason: opts.endReason,
99
+ isFinal: opts.isFinal === true,
100
+ });
101
+ }
102
+ catch (e) {
103
+ logger_1.logger.debug(`codex emit: projection failed: ${e instanceof Error ? e.message : e}`);
104
+ return;
105
+ }
106
+ // Analytics events are typically much larger than the 4KB queue line
107
+ // cap (a 100-turn session can carry 20KB+ in `context_tokens_samples`
108
+ // and per-tool maps), so they POST direct to the collector — mirror of
109
+ // Claude analytics emit. Skip when no collector is configured.
110
+ if (!(0, config_1.isCollectorConfigured)((0, config_1.loadConfig)(opts.projectDir))) {
111
+ logger_1.logger.debug(`codex emit: collector not configured — skipping POST`);
112
+ return;
113
+ }
114
+ const batch = [];
115
+ // Master event — gated by emitOnStop (default true). SessionEnd always emits.
116
+ //
117
+ // Wire shape: `analytics: SessionAnalytics` is NESTED under the event
118
+ // (mirrors Claude side; the collector's session_analytics envelope
119
+ // requires this single nested body field). Earlier code flattened
120
+ // `...projection.delta` at the top level — the collector then saw no
121
+ // `analytics` field → validation reject → 400 on every Codex POST.
122
+ // The session-identity fields (session_id / project_name /
123
+ // user_email / usage_type / usage_plan) live on the top-level
124
+ // envelope, NOT inside `analytics`.
125
+ const shouldEmitMaster = opts.isFinal === true || (0, config_1.isAnalyticsEmitOnStopEnabled)(opts.projectDir);
126
+ if (shouldEmitMaster) {
127
+ // The projection includes `session_id` + `project_name` (carried
128
+ // through the SessionAnalytics body for downstream consumers that
129
+ // see only the analytics blob). The wire envelope ALSO carries
130
+ // them at top level — collector accepts the duplication and
131
+ // canonicalizes on the envelope copy. Mirrors the Claude side.
132
+ const analyticsBody = { ...projection.delta };
133
+ const masterEvent = {
134
+ id: (0, projection_1.deriveCodexSessionAnalyticsEventId)(opts.sessionId),
135
+ type: "session_analytics",
136
+ timestamp: Date.now(),
137
+ session_id: opts.sessionId,
138
+ project_name: projectName,
139
+ user_email: opts.userEmail,
140
+ usage_type: opts.usageType,
141
+ usage_plan: opts.usagePlan,
142
+ analytics: analyticsBody,
143
+ };
144
+ batch.push(masterEvent);
145
+ }
146
+ // session_turn_analytics is OUT OF SCOPE on Codex (see projection.ts
147
+ // module docstring). Only the master session_analytics event ships.
148
+ if (batch.length === 0) {
149
+ return;
150
+ }
151
+ try {
152
+ await (0, collector_1.sendEventsBatchToCollector)(batch, opts.sessionId, opts.projectDir);
153
+ }
154
+ catch (e) {
155
+ logger_1.logger.debug(`codex emit: POST batch=${batch.length} failed: ${e instanceof Error ? e.message : e}`);
156
+ }
157
+ }
158
+ //# sourceMappingURL=emit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit.js","sourceRoot":"","sources":["../../../src/analytics/codex/emit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Codex analytics Stop-hook orchestrator.
3
+ *
4
+ * Called once per Stop hook fire (verify-gate.ts / activity-end.ts). Reads
5
+ * the rollout (cursor-incremental) and emits:
6
+ *
7
+ * - one or more `api_request` events (per new token_count)
8
+ * - one or more `session_status` events (per new token_count, gated by
9
+ * event-time min-interval throttle + skip-if-unchanged signature —
10
+ * mirror of Claude statusline cadence, see analytics.md)
11
+ *
12
+ * `session_context` is intentionally OUT OF SCOPE on Codex — the only
13
+ * available source (Codex's `~/.codex/logs_2.sqlite` feedback-logger DB)
14
+ * is selective + retention-limited (we'd see 1 of ~94 API request bodies)
15
+ * AND its `input`/`output` fields are redacted by the logger, so
16
+ * per-turn breakdown reconstruction is impossible. Rollout JSONL carries
17
+ * the dynamic side (user_message / function_call / function_call_output)
18
+ * but has NO instructions/tools, so a hybrid pipeline would still need
19
+ * SQLite for the static portion — net value didn't justify the complexity
20
+ * + native-module dependency.
21
+ *
22
+ * All events POST directly to the collector in a single batch (mirror of
23
+ * Claude analytics dispatch). Cursor advances are staged in-memory and
24
+ * only persisted on POST success — fail keeps cursor stale so the next
25
+ * Stop retries (deterministic event ids make retries idempotent via
26
+ * backend dedup). Fail-safe — analytics failures never break the Stop hook.
27
+ *
28
+ * State persistence: rollout cursor + statusline signature live under
29
+ * `.ironbee/sessions/<sid>/analytics-codex/state.json` (separate from the
30
+ * main analytics state to avoid Anthropic-specific reset semantics
31
+ * leaking into Codex).
32
+ */
33
+ import { CodexRolloutLine } from "./types";
34
+ export interface EmitCodexAnalyticsOpts {
35
+ projectDir: string;
36
+ sessionId: string;
37
+ /** Rollout path supplied by Codex hook stdin (`transcript_path`). Falls back to discovery walk. */
38
+ rolloutPath?: string;
39
+ /**
40
+ * Pre-parsed rollout lines (worker-shared across pipelines to avoid
41
+ * a second file read + parse pass). When provided, the cursor-
42
+ * incremental read is bypassed and the whole array is processed
43
+ * (deterministic event ids dedup re-processed lines at the backend).
44
+ * The cursor (offset/inode/size) is still advanced to current file
45
+ * state for next-Stop incremental behavior in subsequent runs that
46
+ * DON'T supply preloadedLines.
47
+ */
48
+ preloadedLines?: CodexRolloutLine[];
49
+ /** Pulled from session state.json (set by SessionStart hook). */
50
+ userEmail?: string;
51
+ usageType?: "api" | "subscription";
52
+ usagePlan?: string;
53
+ projectName?: string;
54
+ /** Current active activity_id (for session_status correlation). Empty string when none. */
55
+ activityId?: string;
56
+ }
57
+ /**
58
+ * Stop-hook orchestrator. Wraps each phase in try/catch so an emission
59
+ * failure on one event class doesn't take down the others.
60
+ */
61
+ export declare function emitCodexAnalytics(opts: EmitCodexAnalyticsOpts): Promise<void>;
62
+ //# sourceMappingURL=events-emit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events-emit.d.ts","sourceRoot":"","sources":["../../../src/analytics/codex/events-emit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AA8BH,OAAO,EACH,gBAAgB,EAInB,MAAM,SAAS,CAAC;AAkIjB,MAAM,WAAW,sBAAsB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,mGAAmG;IACnG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACpC,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,KAAK,GAAG,cAAc,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2FAA2F;IAC3F,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqWpF"}