@ironbee-ai/cli 0.15.0 → 0.16.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.
- package/CHANGELOG.md +2 -0
- package/dist/analytics/{emit.d.ts → claude/emit.d.ts} +1 -1
- package/dist/analytics/claude/emit.d.ts.map +1 -0
- package/dist/analytics/{emit.js → claude/emit.js} +34 -7
- package/dist/analytics/claude/emit.js.map +1 -0
- package/dist/analytics/{hook-trigger.d.ts → claude/hook-trigger.d.ts} +1 -1
- package/dist/analytics/claude/hook-trigger.d.ts.map +1 -0
- package/dist/analytics/{hook-trigger.js → claude/hook-trigger.js} +2 -2
- package/dist/analytics/claude/hook-trigger.js.map +1 -0
- package/dist/analytics/claude/log.d.ts.map +1 -0
- package/dist/analytics/{log.js → claude/log.js} +1 -1
- package/dist/analytics/claude/log.js.map +1 -0
- package/dist/analytics/{merge.d.ts → claude/merge.d.ts} +2 -1
- package/dist/analytics/claude/merge.d.ts.map +1 -0
- package/dist/analytics/{merge.js → claude/merge.js} +13 -1
- package/dist/analytics/claude/merge.js.map +1 -0
- package/dist/analytics/{pricing.d.ts → claude/pricing.d.ts} +1 -13
- package/dist/analytics/claude/pricing.d.ts.map +1 -0
- package/dist/analytics/{pricing.js → claude/pricing.js} +6 -14
- package/dist/analytics/claude/pricing.js.map +1 -0
- package/dist/analytics/{projection.d.ts → claude/projection.d.ts} +31 -7
- package/dist/analytics/claude/projection.d.ts.map +1 -0
- package/dist/analytics/{projection.js → claude/projection.js} +631 -327
- package/dist/analytics/claude/projection.js.map +1 -0
- package/dist/analytics/{spawn.d.ts → claude/spawn.d.ts} +4 -4
- package/dist/analytics/claude/spawn.d.ts.map +1 -0
- package/dist/analytics/{spawn.js → claude/spawn.js} +4 -3
- package/dist/analytics/claude/spawn.js.map +1 -0
- package/dist/analytics/{state.d.ts → claude/state.d.ts} +1 -1
- package/dist/analytics/claude/state.d.ts.map +1 -0
- package/dist/analytics/{state.js → claude/state.js} +2 -2
- package/dist/analytics/claude/state.js.map +1 -0
- package/dist/analytics/claude/transcript.d.ts.map +1 -0
- package/dist/analytics/{transcript.js → claude/transcript.js} +1 -1
- package/dist/analytics/claude/transcript.js.map +1 -0
- package/dist/analytics/codex/api-request.d.ts +108 -0
- package/dist/analytics/codex/api-request.d.ts.map +1 -0
- package/dist/analytics/codex/api-request.js +155 -0
- package/dist/analytics/codex/api-request.js.map +1 -0
- package/dist/analytics/codex/apply-patch.d.ts +21 -0
- package/dist/analytics/codex/apply-patch.d.ts.map +1 -0
- package/dist/analytics/codex/apply-patch.js +49 -0
- package/dist/analytics/codex/apply-patch.js.map +1 -0
- package/dist/analytics/codex/classifier.d.ts +28 -0
- package/dist/analytics/codex/classifier.d.ts.map +1 -0
- package/dist/analytics/codex/classifier.js +111 -0
- package/dist/analytics/codex/classifier.js.map +1 -0
- package/dist/analytics/codex/emit.d.ts +47 -0
- package/dist/analytics/codex/emit.d.ts.map +1 -0
- package/dist/analytics/codex/emit.js +158 -0
- package/dist/analytics/codex/emit.js.map +1 -0
- package/dist/analytics/codex/events-emit.d.ts +62 -0
- package/dist/analytics/codex/events-emit.d.ts.map +1 -0
- package/dist/analytics/codex/events-emit.js +555 -0
- package/dist/analytics/codex/events-emit.js.map +1 -0
- package/dist/analytics/codex/pricing.d.ts +57 -0
- package/dist/analytics/codex/pricing.d.ts.map +1 -0
- package/dist/analytics/codex/pricing.js +125 -0
- package/dist/analytics/codex/pricing.js.map +1 -0
- package/dist/analytics/codex/projection.d.ts +51 -0
- package/dist/analytics/codex/projection.d.ts.map +1 -0
- package/dist/analytics/codex/projection.js +1477 -0
- package/dist/analytics/codex/projection.js.map +1 -0
- package/dist/analytics/codex/spawn.d.ts +27 -0
- package/dist/analytics/codex/spawn.d.ts.map +1 -0
- package/dist/analytics/codex/spawn.js +64 -0
- package/dist/analytics/codex/spawn.js.map +1 -0
- package/dist/analytics/codex/status-snapshot.d.ts +80 -0
- package/dist/analytics/codex/status-snapshot.d.ts.map +1 -0
- package/dist/analytics/codex/status-snapshot.js +206 -0
- package/dist/analytics/codex/status-snapshot.js.map +1 -0
- package/dist/analytics/codex/transcript.d.ts +51 -0
- package/dist/analytics/codex/transcript.d.ts.map +1 -0
- package/dist/analytics/codex/transcript.js +134 -0
- package/dist/analytics/codex/transcript.js.map +1 -0
- package/dist/analytics/codex/types.d.ts +253 -0
- package/dist/analytics/codex/types.d.ts.map +1 -0
- package/dist/analytics/codex/types.js +29 -0
- package/dist/analytics/codex/types.js.map +1 -0
- package/dist/analytics/shared/classifier.d.ts.map +1 -0
- package/dist/analytics/{classifier.js → shared/classifier.js} +9 -0
- package/dist/analytics/shared/classifier.js.map +1 -0
- package/dist/analytics/shared/errors.d.ts.map +1 -0
- package/dist/analytics/shared/errors.js.map +1 -0
- package/dist/analytics/shared/tokens.d.ts +14 -0
- package/dist/analytics/shared/tokens.d.ts.map +1 -0
- package/dist/analytics/shared/tokens.js +17 -0
- package/dist/analytics/shared/tokens.js.map +1 -0
- package/dist/analytics/{types.d.ts → shared/types.d.ts} +42 -9
- package/dist/analytics/shared/types.d.ts.map +1 -0
- package/dist/analytics/shared/types.js.map +1 -0
- package/dist/clients/base.d.ts +9 -0
- package/dist/clients/base.d.ts.map +1 -1
- package/dist/clients/claude/hooks/activity-end.js +1 -1
- package/dist/clients/claude/hooks/activity-end.js.map +1 -1
- package/dist/clients/claude/hooks/activity-start.js +1 -1
- package/dist/clients/claude/hooks/activity-start.js.map +1 -1
- package/dist/clients/claude/hooks/clear-verdict.d.ts.map +1 -1
- package/dist/clients/claude/hooks/clear-verdict.js +14 -0
- package/dist/clients/claude/hooks/clear-verdict.js.map +1 -1
- package/dist/clients/claude/hooks/session-end.d.ts.map +1 -1
- package/dist/clients/claude/hooks/session-end.js +7 -1
- package/dist/clients/claude/hooks/session-end.js.map +1 -1
- package/dist/clients/claude/hooks/session-start.d.ts.map +1 -1
- package/dist/clients/claude/hooks/session-start.js +7 -1
- package/dist/clients/claude/hooks/session-start.js.map +1 -1
- package/dist/clients/claude/hooks/session-status.d.ts.map +1 -1
- package/dist/clients/claude/hooks/session-status.js +13 -9
- package/dist/clients/claude/hooks/session-status.js.map +1 -1
- package/dist/clients/claude/hooks/track-action.d.ts.map +1 -1
- package/dist/clients/claude/hooks/track-action.js +26 -1
- package/dist/clients/claude/hooks/track-action.js.map +1 -1
- package/dist/clients/claude/hooks/verify-gate.d.ts.map +1 -1
- package/dist/clients/claude/hooks/verify-gate.js +8 -1
- package/dist/clients/claude/hooks/verify-gate.js.map +1 -1
- package/dist/clients/claude/index.d.ts +1 -0
- package/dist/clients/claude/index.d.ts.map +1 -1
- package/dist/clients/claude/index.js +7 -0
- package/dist/clients/claude/index.js.map +1 -1
- package/dist/clients/claude/util.d.ts.map +1 -1
- package/dist/clients/claude/util.js +55 -0
- package/dist/clients/claude/util.js.map +1 -1
- package/dist/clients/codex/commands/ironbee-verify/SKILL.md +58 -0
- package/dist/clients/codex/hooks/activity-end.d.ts +9 -0
- package/dist/clients/codex/hooks/activity-end.d.ts.map +1 -0
- package/dist/clients/codex/hooks/activity-end.js +65 -0
- package/dist/clients/codex/hooks/activity-end.js.map +1 -0
- package/dist/clients/codex/hooks/activity-start.d.ts +17 -0
- package/dist/clients/codex/hooks/activity-start.d.ts.map +1 -0
- package/dist/clients/codex/hooks/activity-start.js +38 -0
- package/dist/clients/codex/hooks/activity-start.js.map +1 -0
- package/dist/clients/codex/hooks/clear-verdict.d.ts +55 -0
- package/dist/clients/codex/hooks/clear-verdict.d.ts.map +1 -0
- package/dist/clients/codex/hooks/clear-verdict.js +299 -0
- package/dist/clients/codex/hooks/clear-verdict.js.map +1 -0
- package/dist/clients/codex/hooks/require-verdict.d.ts +30 -0
- package/dist/clients/codex/hooks/require-verdict.d.ts.map +1 -0
- package/dist/clients/codex/hooks/require-verdict.js +109 -0
- package/dist/clients/codex/hooks/require-verdict.js.map +1 -0
- package/dist/clients/codex/hooks/require-verification.d.ts +12 -0
- package/dist/clients/codex/hooks/require-verification.d.ts.map +1 -0
- package/dist/clients/codex/hooks/require-verification.js +136 -0
- package/dist/clients/codex/hooks/require-verification.js.map +1 -0
- package/dist/clients/codex/hooks/session-start.d.ts +10 -0
- package/dist/clients/codex/hooks/session-start.d.ts.map +1 -0
- package/dist/clients/codex/hooks/session-start.js +94 -0
- package/dist/clients/codex/hooks/session-start.js.map +1 -0
- package/dist/clients/codex/hooks/track-action-monitor.d.ts +10 -0
- package/dist/clients/codex/hooks/track-action-monitor.d.ts.map +1 -0
- package/dist/clients/codex/hooks/track-action-monitor.js +168 -0
- package/dist/clients/codex/hooks/track-action-monitor.js.map +1 -0
- package/dist/clients/codex/hooks/track-action-pre.d.ts +18 -0
- package/dist/clients/codex/hooks/track-action-pre.d.ts.map +1 -0
- package/dist/clients/codex/hooks/track-action-pre.js +35 -0
- package/dist/clients/codex/hooks/track-action-pre.js.map +1 -0
- package/dist/clients/codex/hooks/track-action.d.ts +22 -0
- package/dist/clients/codex/hooks/track-action.d.ts.map +1 -0
- package/dist/clients/codex/hooks/track-action.js +350 -0
- package/dist/clients/codex/hooks/track-action.js.map +1 -0
- package/dist/clients/codex/hooks/verify-gate.d.ts +15 -0
- package/dist/clients/codex/hooks/verify-gate.d.ts.map +1 -0
- package/dist/clients/codex/hooks/verify-gate.js +105 -0
- package/dist/clients/codex/hooks/verify-gate.js.map +1 -0
- package/dist/clients/codex/index.d.ts +42 -0
- package/dist/clients/codex/index.d.ts.map +1 -0
- package/dist/clients/codex/index.js +427 -0
- package/dist/clients/codex/index.js.map +1 -0
- package/dist/clients/codex/platforms/command-verify.backend.md +108 -0
- package/dist/clients/codex/platforms/command-verify.browser.md +108 -0
- package/dist/clients/codex/platforms/command-verify.node.md +61 -0
- package/dist/clients/codex/platforms/rule.backend.md +32 -0
- package/dist/clients/codex/platforms/rule.browser.md +17 -0
- package/dist/clients/codex/platforms/rule.node.md +28 -0
- package/dist/clients/codex/platforms/skill.backend.md +95 -0
- package/dist/clients/codex/platforms/skill.browser.md +28 -0
- package/dist/clients/codex/platforms/skill.node.md +62 -0
- package/dist/clients/codex/rules/ironbee-verification.md +48 -0
- package/dist/clients/codex/skills/ironbee-verification.md +80 -0
- package/dist/clients/codex/util.d.ts +193 -0
- package/dist/clients/codex/util.d.ts.map +1 -0
- package/dist/clients/codex/util.js +784 -0
- package/dist/clients/codex/util.js.map +1 -0
- package/dist/clients/cursor/hooks/activity-end.js +1 -1
- package/dist/clients/cursor/hooks/activity-end.js.map +1 -1
- package/dist/clients/cursor/hooks/clear-verdict.d.ts +5 -2
- package/dist/clients/cursor/hooks/clear-verdict.d.ts.map +1 -1
- package/dist/clients/cursor/hooks/clear-verdict.js +12 -3
- package/dist/clients/cursor/hooks/clear-verdict.js.map +1 -1
- package/dist/clients/cursor/hooks/session-end.js +1 -1
- package/dist/clients/cursor/hooks/session-end.js.map +1 -1
- package/dist/clients/cursor/hooks/verify-gate.d.ts.map +1 -1
- package/dist/clients/cursor/hooks/verify-gate.js +6 -1
- package/dist/clients/cursor/hooks/verify-gate.js.map +1 -1
- package/dist/clients/cursor/index.d.ts +1 -0
- package/dist/clients/cursor/index.d.ts.map +1 -1
- package/dist/clients/cursor/index.js +13 -0
- package/dist/clients/cursor/index.js.map +1 -1
- package/dist/clients/registry.d.ts.map +1 -1
- package/dist/clients/registry.js +2 -1
- package/dist/clients/registry.js.map +1 -1
- package/dist/commands/{claude.d.ts → claude/index.d.ts} +1 -1
- package/dist/commands/claude/index.d.ts.map +1 -0
- package/dist/commands/{claude.js → claude/index.js} +12 -6
- package/dist/commands/claude/index.js.map +1 -0
- package/dist/commands/{otel.d.ts → claude/otel.d.ts} +5 -1
- package/dist/commands/claude/otel.d.ts.map +1 -0
- package/dist/commands/{otel.js → claude/otel.js} +9 -5
- package/dist/commands/claude/otel.js.map +1 -0
- package/dist/commands/claude/process-analytics.d.ts +19 -0
- package/dist/commands/claude/process-analytics.d.ts.map +1 -0
- package/dist/commands/{process-analytics.js → claude/process-analytics.js} +16 -15
- package/dist/commands/claude/process-analytics.js.map +1 -0
- package/dist/commands/{statusline-toggle.d.ts → claude/statusline-toggle.d.ts} +2 -2
- package/dist/commands/claude/statusline-toggle.d.ts.map +1 -0
- package/dist/commands/{statusline-toggle.js → claude/statusline-toggle.js} +8 -8
- package/dist/commands/claude/statusline-toggle.js.map +1 -0
- package/dist/commands/{statusline.d.ts → claude/statusline.d.ts} +1 -1
- package/dist/commands/claude/statusline.d.ts.map +1 -0
- package/dist/commands/{statusline.js → claude/statusline.js} +4 -4
- package/dist/commands/claude/statusline.js.map +1 -0
- package/dist/commands/codex/index.d.ts +11 -0
- package/dist/commands/codex/index.d.ts.map +1 -0
- package/dist/commands/codex/index.js +17 -0
- package/dist/commands/codex/index.js.map +1 -0
- package/dist/commands/codex/process-analytics.d.ts +14 -0
- package/dist/commands/codex/process-analytics.d.ts.map +1 -0
- package/dist/commands/codex/process-analytics.js +111 -0
- package/dist/commands/codex/process-analytics.js.map +1 -0
- package/dist/commands/hook.js +12 -0
- package/dist/commands/hook.js.map +1 -1
- package/dist/commands/import.js +3 -3
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/queue.js +3 -1
- package/dist/commands/queue.js.map +1 -1
- package/dist/hooks/core/actions.d.ts +17 -1
- package/dist/hooks/core/actions.d.ts.map +1 -1
- package/dist/hooks/core/actions.js +13 -0
- package/dist/hooks/core/actions.js.map +1 -1
- package/dist/hooks/core/activity-end.d.ts.map +1 -1
- package/dist/hooks/core/activity-end.js +4 -0
- package/dist/hooks/core/activity-end.js.map +1 -1
- package/dist/hooks/core/session-state.d.ts +15 -1
- package/dist/hooks/core/session-state.d.ts.map +1 -1
- package/dist/hooks/core/session-state.js +102 -7
- package/dist/hooks/core/session-state.js.map +1 -1
- package/dist/import/claude/analytics-runner.d.ts +1 -1
- package/dist/import/claude/analytics-runner.d.ts.map +1 -1
- package/dist/import/claude/analytics-runner.js +5 -5
- package/dist/import/claude/analytics-runner.js.map +1 -1
- package/dist/import/claude/auth-mode.d.ts +1 -1
- package/dist/import/claude/auth-mode.d.ts.map +1 -1
- package/dist/import/claude/discovery.js +1 -1
- package/dist/import/claude/discovery.js.map +1 -1
- package/dist/import/claude/encoding.js +1 -1
- package/dist/import/claude/encoding.js.map +1 -1
- package/dist/import/claude/events/file-change.d.ts +10 -1
- package/dist/import/claude/events/file-change.d.ts.map +1 -1
- package/dist/import/claude/events/file-change.js +79 -5
- package/dist/import/claude/events/file-change.js.map +1 -1
- package/dist/import/claude/events/tool-call.d.ts +16 -1
- package/dist/import/claude/events/tool-call.d.ts.map +1 -1
- package/dist/import/claude/events/tool-call.js +122 -15
- package/dist/import/claude/events/tool-call.js.map +1 -1
- package/dist/import/claude/runner.d.ts.map +1 -1
- package/dist/import/claude/runner.js +45 -3
- package/dist/import/claude/runner.js.map +1 -1
- package/dist/import/claude/summary.js +1 -1
- package/dist/import/claude/summary.js.map +1 -1
- package/dist/import/claude/transcript-walk.d.ts +1 -1
- package/dist/import/claude/transcript-walk.d.ts.map +1 -1
- package/dist/import/claude/transcript-walk.js +11 -4
- package/dist/import/claude/transcript-walk.js.map +1 -1
- package/dist/import/codex/analytics-runner.d.ts +46 -0
- package/dist/import/codex/analytics-runner.d.ts.map +1 -0
- package/dist/import/codex/analytics-runner.js +116 -0
- package/dist/import/codex/analytics-runner.js.map +1 -0
- package/dist/import/codex/discovery.d.ts +33 -0
- package/dist/import/codex/discovery.d.ts.map +1 -0
- package/dist/import/codex/discovery.js +202 -0
- package/dist/import/codex/discovery.js.map +1 -0
- package/dist/import/codex/events/file-change.d.ts +42 -0
- package/dist/import/codex/events/file-change.d.ts.map +1 -0
- package/dist/import/codex/events/file-change.js +125 -0
- package/dist/import/codex/events/file-change.js.map +1 -0
- package/dist/import/codex/events/tool-call.d.ts +49 -0
- package/dist/import/codex/events/tool-call.d.ts.map +1 -0
- package/dist/import/codex/events/tool-call.js +151 -0
- package/dist/import/codex/events/tool-call.js.map +1 -0
- package/dist/import/codex/runner.d.ts +34 -0
- package/dist/import/codex/runner.d.ts.map +1 -0
- package/dist/import/codex/runner.js +456 -0
- package/dist/import/codex/runner.js.map +1 -0
- package/dist/import/codex/summary.d.ts +20 -0
- package/dist/import/codex/summary.d.ts.map +1 -0
- package/dist/import/codex/summary.js +206 -0
- package/dist/import/codex/summary.js.map +1 -0
- package/dist/import/events/activity.d.ts.map +1 -1
- package/dist/import/events/activity.js +17 -2
- package/dist/import/events/activity.js.map +1 -1
- package/dist/import/events/session.d.ts +11 -1
- package/dist/import/events/session.d.ts.map +1 -1
- package/dist/import/events/session.js +19 -1
- package/dist/import/events/session.js.map +1 -1
- package/dist/import/ids.js +3 -3
- package/dist/import/ids.js.map +1 -1
- package/dist/import/pipeline.d.ts +22 -15
- package/dist/import/pipeline.d.ts.map +1 -1
- package/dist/import/pipeline.js +99 -18
- package/dist/import/pipeline.js.map +1 -1
- package/dist/import/types.d.ts +4 -0
- package/dist/import/types.d.ts.map +1 -1
- package/dist/import/types.js.map +1 -1
- package/dist/index.js +9 -11
- package/dist/index.js.map +1 -1
- package/dist/lib/collector.d.ts +2 -1
- package/dist/lib/collector.d.ts.map +1 -1
- package/dist/lib/collector.js +28 -3
- package/dist/lib/collector.js.map +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/event.d.ts +18 -1
- package/dist/lib/event.d.ts.map +1 -1
- package/dist/lib/event.js +25 -1
- package/dist/lib/event.js.map +1 -1
- package/dist/lib/platform-section.d.ts.map +1 -1
- package/dist/lib/platform-section.js +8 -0
- package/dist/lib/platform-section.js.map +1 -1
- package/dist/otel/{context → claude/context}/build.d.ts +1 -1
- package/dist/otel/claude/context/build.d.ts.map +1 -0
- package/dist/otel/{context → claude/context}/build.js +3 -7
- package/dist/otel/claude/context/build.js.map +1 -0
- package/dist/otel/claude/context/classify.d.ts.map +1 -0
- package/dist/otel/claude/context/classify.js.map +1 -0
- package/dist/otel/{context → claude/context}/extract.d.ts +1 -1
- package/dist/otel/claude/context/extract.d.ts.map +1 -0
- package/dist/otel/claude/context/extract.js.map +1 -0
- package/dist/otel/claude/context/markers.d.ts.map +1 -0
- package/dist/otel/{context → claude/context}/markers.js +22 -3
- package/dist/otel/claude/context/markers.js.map +1 -0
- package/dist/otel/claude/context/util.d.ts.map +1 -0
- package/dist/otel/claude/context/util.js.map +1 -0
- package/dist/otel/{daemon → claude/daemon}/ensure.d.ts +1 -1
- package/dist/otel/claude/daemon/ensure.d.ts.map +1 -0
- package/dist/otel/{daemon → claude/daemon}/ensure.js +6 -6
- package/dist/otel/claude/daemon/ensure.js.map +1 -0
- package/dist/otel/{daemon → claude/daemon}/forward.d.ts +1 -1
- package/dist/otel/claude/daemon/forward.d.ts.map +1 -0
- package/dist/otel/{daemon → claude/daemon}/forward.js +0 -0
- package/dist/otel/claude/daemon/forward.js.map +1 -0
- package/dist/otel/claude/daemon/paths.d.ts.map +1 -0
- package/dist/otel/claude/daemon/paths.js.map +1 -0
- package/dist/otel/{daemon → claude/daemon}/process.d.ts +1 -1
- package/dist/otel/claude/daemon/process.d.ts.map +1 -0
- package/dist/otel/{daemon → claude/daemon}/process.js +1 -1
- package/dist/otel/claude/daemon/process.js.map +1 -0
- package/dist/otel/claude/daemon/reprocess.d.ts.map +1 -0
- package/dist/otel/{daemon → claude/daemon}/reprocess.js +2 -2
- package/dist/otel/claude/daemon/reprocess.js.map +1 -0
- package/dist/otel/claude/log-handler.d.ts.map +1 -0
- package/dist/otel/{log-handler.js → claude/log-handler.js} +1 -1
- package/dist/otel/claude/log-handler.js.map +1 -0
- package/dist/otel/collector.js +4 -4
- package/dist/otel/collector.js.map +1 -1
- package/dist/queue/flush.d.ts +23 -0
- package/dist/queue/flush.d.ts.map +1 -1
- package/dist/queue/flush.js +44 -0
- package/dist/queue/flush.js.map +1 -1
- package/dist/queue/handlers/send-event.d.ts.map +1 -1
- package/dist/queue/handlers/send-event.js +5 -4
- package/dist/queue/handlers/send-event.js.map +1 -1
- package/dist/queue/index.d.ts +2 -2
- package/dist/queue/index.d.ts.map +1 -1
- package/dist/queue/index.js +4 -1
- package/dist/queue/index.js.map +1 -1
- package/dist/queue/spawn.d.ts +20 -0
- package/dist/queue/spawn.d.ts.map +1 -1
- package/dist/queue/spawn.js +37 -0
- package/dist/queue/spawn.js.map +1 -1
- package/dist/tui/import/area.js +3 -3
- package/dist/tui/import/area.js.map +1 -1
- package/package.json +2 -1
- package/dist/analytics/classifier.d.ts.map +0 -1
- package/dist/analytics/classifier.js.map +0 -1
- package/dist/analytics/emit.d.ts.map +0 -1
- package/dist/analytics/emit.js.map +0 -1
- package/dist/analytics/errors.d.ts.map +0 -1
- package/dist/analytics/errors.js.map +0 -1
- package/dist/analytics/hook-trigger.d.ts.map +0 -1
- package/dist/analytics/hook-trigger.js.map +0 -1
- package/dist/analytics/log.d.ts.map +0 -1
- package/dist/analytics/log.js.map +0 -1
- package/dist/analytics/merge.d.ts.map +0 -1
- package/dist/analytics/merge.js.map +0 -1
- package/dist/analytics/pricing.d.ts.map +0 -1
- package/dist/analytics/pricing.js.map +0 -1
- package/dist/analytics/projection.d.ts.map +0 -1
- package/dist/analytics/projection.js.map +0 -1
- package/dist/analytics/spawn.d.ts.map +0 -1
- package/dist/analytics/spawn.js.map +0 -1
- package/dist/analytics/state.d.ts.map +0 -1
- package/dist/analytics/state.js.map +0 -1
- package/dist/analytics/transcript.d.ts.map +0 -1
- package/dist/analytics/transcript.js.map +0 -1
- package/dist/analytics/types.d.ts.map +0 -1
- package/dist/analytics/types.js.map +0 -1
- package/dist/commands/claude.d.ts.map +0 -1
- package/dist/commands/claude.js.map +0 -1
- package/dist/commands/otel.d.ts.map +0 -1
- package/dist/commands/otel.js.map +0 -1
- package/dist/commands/process-analytics.d.ts +0 -18
- package/dist/commands/process-analytics.d.ts.map +0 -1
- package/dist/commands/process-analytics.js.map +0 -1
- package/dist/commands/statusline-toggle.d.ts.map +0 -1
- package/dist/commands/statusline-toggle.js.map +0 -1
- package/dist/commands/statusline.d.ts.map +0 -1
- package/dist/commands/statusline.js.map +0 -1
- package/dist/otel/context/build.d.ts.map +0 -1
- package/dist/otel/context/build.js.map +0 -1
- package/dist/otel/context/classify.d.ts.map +0 -1
- package/dist/otel/context/classify.js.map +0 -1
- package/dist/otel/context/extract.d.ts.map +0 -1
- package/dist/otel/context/extract.js.map +0 -1
- package/dist/otel/context/markers.d.ts.map +0 -1
- package/dist/otel/context/markers.js.map +0 -1
- package/dist/otel/context/util.d.ts.map +0 -1
- package/dist/otel/context/util.js.map +0 -1
- package/dist/otel/daemon/ensure.d.ts.map +0 -1
- package/dist/otel/daemon/ensure.js.map +0 -1
- package/dist/otel/daemon/forward.d.ts.map +0 -1
- package/dist/otel/daemon/forward.js.map +0 -1
- package/dist/otel/daemon/paths.d.ts.map +0 -1
- package/dist/otel/daemon/paths.js.map +0 -1
- package/dist/otel/daemon/process.d.ts.map +0 -1
- package/dist/otel/daemon/process.js.map +0 -1
- package/dist/otel/daemon/reprocess.d.ts.map +0 -1
- package/dist/otel/daemon/reprocess.js.map +0 -1
- package/dist/otel/log-handler.d.ts.map +0 -1
- package/dist/otel/log-handler.js.map +0 -1
- /package/dist/analytics/{log.d.ts → claude/log.d.ts} +0 -0
- /package/dist/analytics/{transcript.d.ts → claude/transcript.d.ts} +0 -0
- /package/dist/analytics/{classifier.d.ts → shared/classifier.d.ts} +0 -0
- /package/dist/analytics/{errors.d.ts → shared/errors.d.ts} +0 -0
- /package/dist/analytics/{errors.js → shared/errors.js} +0 -0
- /package/dist/analytics/{types.js → shared/types.js} +0 -0
- /package/dist/otel/{context → claude/context}/classify.d.ts +0 -0
- /package/dist/otel/{context → claude/context}/classify.js +0 -0
- /package/dist/otel/{context → claude/context}/extract.js +0 -0
- /package/dist/otel/{context → claude/context}/markers.d.ts +0 -0
- /package/dist/otel/{context → claude/context}/util.d.ts +0 -0
- /package/dist/otel/{context → claude/context}/util.js +0 -0
- /package/dist/otel/{daemon → claude/daemon}/paths.d.ts +0 -0
- /package/dist/otel/{daemon → claude/daemon}/paths.js +0 -0
- /package/dist/otel/{daemon → claude/daemon}/reprocess.d.ts +0 -0
- /package/dist/otel/{log-handler.d.ts → claude/log-handler.d.ts} +0 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* IronBee CLI — Codex Rollout Transcript Locator + Parser
|
|
4
|
+
*
|
|
5
|
+
* Resolves the Codex rollout JSONL path for a session_id and tail-parses
|
|
6
|
+
* a slice of new bytes into RolloutItem records.
|
|
7
|
+
*
|
|
8
|
+
* Codex stores per-session transcripts at:
|
|
9
|
+
* ~/.codex/sessions/<YYYY>/<MM>/<DD>/rollout-<TS>-<UUID>.jsonl
|
|
10
|
+
*
|
|
11
|
+
* The session UUID is embedded in the filename (8 hex chars before the
|
|
12
|
+
* second `-`), so locating a transcript by session_id requires a directory
|
|
13
|
+
* walk. Codex hook stdin also carries `transcript_path` directly — when
|
|
14
|
+
* available it's preferred and the walk is a fallback.
|
|
15
|
+
*
|
|
16
|
+
* Reuses the generic JSONL parser primitives from `src/analytics/transcript.ts`
|
|
17
|
+
* (parseJsonl, readSlice, statTranscript, firstKbSha256) — only path
|
|
18
|
+
* resolution differs.
|
|
19
|
+
*/
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.codexSessionsRoot = codexSessionsRoot;
|
|
22
|
+
exports.findCodexRolloutPath = findCodexRolloutPath;
|
|
23
|
+
exports.walkAllCodexRollouts = walkAllCodexRollouts;
|
|
24
|
+
exports.sessionIdFromRolloutPath = sessionIdFromRolloutPath;
|
|
25
|
+
exports.rolloutMtimeMs = rolloutMtimeMs;
|
|
26
|
+
const fs_1 = require("fs");
|
|
27
|
+
const os_1 = require("os");
|
|
28
|
+
const path_1 = require("path");
|
|
29
|
+
const logger_1 = require("../../lib/logger");
|
|
30
|
+
/**
|
|
31
|
+
* Returns the root directory holding all Codex rollout files.
|
|
32
|
+
*
|
|
33
|
+
* Uses `process.env.HOME` (POSIX) / `USERPROFILE` (Windows) at call time
|
|
34
|
+
* rather than cached `os.homedir()` so HOME-isolated tests work without
|
|
35
|
+
* needing a process restart between fixtures.
|
|
36
|
+
*/
|
|
37
|
+
function codexSessionsRoot() {
|
|
38
|
+
const home = process.env.HOME ?? process.env.USERPROFILE ?? (0, os_1.homedir)();
|
|
39
|
+
return (0, path_1.join)(home, ".codex", "sessions");
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Resolve the rollout JSONL path for a Codex session_id by scanning
|
|
43
|
+
* `~/.codex/sessions/<YYYY>/<MM>/<DD>/rollout-*-<session_id>.jsonl`.
|
|
44
|
+
*
|
|
45
|
+
* Returns null if no matching file is found. The walk is bounded —
|
|
46
|
+
* scans newest dates first and stops on first match.
|
|
47
|
+
*/
|
|
48
|
+
function findCodexRolloutPath(sessionId) {
|
|
49
|
+
const root = codexSessionsRoot();
|
|
50
|
+
if (!(0, fs_1.existsSync)(root)) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
try {
|
|
54
|
+
// Sessions root has YYYY/ subdirs. Walk newest-first.
|
|
55
|
+
const years = (0, fs_1.readdirSync)(root).filter((y) => /^\d{4}$/.test(y)).sort().reverse();
|
|
56
|
+
for (const year of years) {
|
|
57
|
+
const yearDir = (0, path_1.join)(root, year);
|
|
58
|
+
const months = (0, fs_1.readdirSync)(yearDir).filter((m) => /^\d{2}$/.test(m)).sort().reverse();
|
|
59
|
+
for (const month of months) {
|
|
60
|
+
const monthDir = (0, path_1.join)(yearDir, month);
|
|
61
|
+
const days = (0, fs_1.readdirSync)(monthDir).filter((d) => /^\d{2}$/.test(d)).sort().reverse();
|
|
62
|
+
for (const day of days) {
|
|
63
|
+
const dayDir = (0, path_1.join)(monthDir, day);
|
|
64
|
+
const files = (0, fs_1.readdirSync)(dayDir).filter((f) => f.endsWith(`-${sessionId}.jsonl`));
|
|
65
|
+
if (files.length > 0) {
|
|
66
|
+
return (0, path_1.join)(dayDir, files[0]);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch (e) {
|
|
73
|
+
logger_1.logger.debug(`codex transcript: scan ${root} failed: ${e instanceof Error ? e.message : e}`);
|
|
74
|
+
}
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Walk every rollout file under the sessions root (newest-first) and yield
|
|
79
|
+
* each path. Used by `ironbee import --codex` for discovery.
|
|
80
|
+
*
|
|
81
|
+
* Returns absolute paths.
|
|
82
|
+
*/
|
|
83
|
+
function* walkAllCodexRollouts() {
|
|
84
|
+
const root = codexSessionsRoot();
|
|
85
|
+
if (!(0, fs_1.existsSync)(root)) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
try {
|
|
89
|
+
const years = (0, fs_1.readdirSync)(root).filter((y) => /^\d{4}$/.test(y)).sort().reverse();
|
|
90
|
+
for (const year of years) {
|
|
91
|
+
const yearDir = (0, path_1.join)(root, year);
|
|
92
|
+
const months = (0, fs_1.readdirSync)(yearDir).filter((m) => /^\d{2}$/.test(m)).sort().reverse();
|
|
93
|
+
for (const month of months) {
|
|
94
|
+
const monthDir = (0, path_1.join)(yearDir, month);
|
|
95
|
+
const days = (0, fs_1.readdirSync)(monthDir).filter((d) => /^\d{2}$/.test(d)).sort().reverse();
|
|
96
|
+
for (const day of days) {
|
|
97
|
+
const dayDir = (0, path_1.join)(monthDir, day);
|
|
98
|
+
const files = (0, fs_1.readdirSync)(dayDir).filter((f) => f.startsWith("rollout-") && f.endsWith(".jsonl"));
|
|
99
|
+
for (const file of files) {
|
|
100
|
+
yield (0, path_1.join)(dayDir, file);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
catch (e) {
|
|
107
|
+
logger_1.logger.debug(`codex transcript: walk ${root} failed: ${e instanceof Error ? e.message : e}`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Extract the embedded session_id from a rollout file's name. Files are
|
|
112
|
+
* named `rollout-<ISO8601>-<UUID>.jsonl`; returns the UUID portion.
|
|
113
|
+
*
|
|
114
|
+
* Returns null on shape mismatch.
|
|
115
|
+
*/
|
|
116
|
+
function sessionIdFromRolloutPath(rolloutPath) {
|
|
117
|
+
// path.basename handles both POSIX (`/`) and Windows (`\`) separators.
|
|
118
|
+
// The hand-rolled `lastIndexOf("/")` + single `.replace("\\", "/")`
|
|
119
|
+
// pattern returned the full path on Windows, so the regex below never
|
|
120
|
+
// matched — every Windows session_id lookup returned null.
|
|
121
|
+
const base = (0, path_1.basename)(rolloutPath);
|
|
122
|
+
const m = /^rollout-.+-([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.jsonl$/i.exec(base);
|
|
123
|
+
return m?.[1] ?? null;
|
|
124
|
+
}
|
|
125
|
+
/** Stat helper for rollout path — returns null if missing. */
|
|
126
|
+
function rolloutMtimeMs(rolloutPath) {
|
|
127
|
+
try {
|
|
128
|
+
return (0, fs_1.statSync)(rolloutPath).mtimeMs;
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=transcript.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../../src/analytics/codex/transcript.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codex rollout JSONL — typed shapes.
|
|
3
|
+
*
|
|
4
|
+
* Codex writes one JSONL line per `RolloutItem` (defined in
|
|
5
|
+
* `codex-rs/protocol/src/protocol.rs:2779`). Each line has the wrapper
|
|
6
|
+
* shape `{ timestamp: ISO8601, type: TopType, payload: Payload }`.
|
|
7
|
+
*
|
|
8
|
+
* Only the fields IronBee analytics consumes are typed. Everything else
|
|
9
|
+
* stays `unknown` so we don't crash on harmless schema drift.
|
|
10
|
+
*/
|
|
11
|
+
/** Top-level RolloutItem discriminator. */
|
|
12
|
+
export type CodexRolloutTopType = "session_meta" | "response_item" | "turn_context" | "event_msg" | "compacted";
|
|
13
|
+
export interface CodexRolloutLine<P = unknown> {
|
|
14
|
+
timestamp: string;
|
|
15
|
+
type: CodexRolloutTopType;
|
|
16
|
+
payload: P;
|
|
17
|
+
}
|
|
18
|
+
export interface CodexSessionMetaPayload {
|
|
19
|
+
id: string;
|
|
20
|
+
timestamp: string;
|
|
21
|
+
cwd: string;
|
|
22
|
+
originator: string;
|
|
23
|
+
cli_version: string;
|
|
24
|
+
source: string;
|
|
25
|
+
thread_source: string;
|
|
26
|
+
model_provider: string;
|
|
27
|
+
base_instructions?: {
|
|
28
|
+
text?: string;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export type CodexSessionMetaLine = CodexRolloutLine<CodexSessionMetaPayload>;
|
|
32
|
+
export interface CodexTurnContextPayload {
|
|
33
|
+
turn_id: string;
|
|
34
|
+
cwd: string;
|
|
35
|
+
current_date?: string;
|
|
36
|
+
timezone?: string;
|
|
37
|
+
approval_policy?: string;
|
|
38
|
+
sandbox_policy?: unknown;
|
|
39
|
+
model?: string;
|
|
40
|
+
reasoning_effort?: string;
|
|
41
|
+
}
|
|
42
|
+
export type CodexTurnContextLine = CodexRolloutLine<CodexTurnContextPayload>;
|
|
43
|
+
export type CodexResponseItemPayloadType = "message" | "function_call" | "function_call_output" | "custom_tool_call" | "custom_tool_call_output" | "web_search_call" | "reasoning";
|
|
44
|
+
export interface CodexFunctionCallPayload {
|
|
45
|
+
type: "function_call";
|
|
46
|
+
name: string;
|
|
47
|
+
arguments: string;
|
|
48
|
+
call_id: string;
|
|
49
|
+
status?: string;
|
|
50
|
+
/**
|
|
51
|
+
* Routing namespace. Empirical values across 69 rollouts:
|
|
52
|
+
* - `multi_agent_v1` — sub-agent orchestration tools (spawn_agent /
|
|
53
|
+
* wait_agent / close_agent)
|
|
54
|
+
* - `mcp__<server>` — MCP server invocations (e.g. `mcp__echo_user_level`,
|
|
55
|
+
* `mcp__browser_devtools`)
|
|
56
|
+
* - absent — Codex built-ins (exec_command / view_image / update_plan / ...)
|
|
57
|
+
*
|
|
58
|
+
* Read at projection time to disambiguate sub-agent detection from
|
|
59
|
+
* future third-party MCP servers that might collide with built-in tool
|
|
60
|
+
* names (e.g. a custom MCP server exposing its own `spawn_agent` tool).
|
|
61
|
+
*/
|
|
62
|
+
namespace?: string;
|
|
63
|
+
}
|
|
64
|
+
export interface CodexFunctionCallOutputPayload {
|
|
65
|
+
type: "function_call_output";
|
|
66
|
+
call_id: string;
|
|
67
|
+
output?: string;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Codex emits `apply_patch` as a `custom_tool_call` (NOT `function_call`).
|
|
71
|
+
* Wire shape (verified 0.135.x):
|
|
72
|
+
* { type: "custom_tool_call", name: "apply_patch", input: "<raw patch text>", call_id }
|
|
73
|
+
* Note `input` is the RAW patch text, not JSON-encoded — unlike `function_call.arguments`.
|
|
74
|
+
*/
|
|
75
|
+
export interface CodexCustomToolCallPayload {
|
|
76
|
+
type: "custom_tool_call";
|
|
77
|
+
name: string;
|
|
78
|
+
input: string;
|
|
79
|
+
call_id: string;
|
|
80
|
+
status?: string;
|
|
81
|
+
}
|
|
82
|
+
export interface CodexCustomToolCallOutputPayload {
|
|
83
|
+
type: "custom_tool_call_output";
|
|
84
|
+
call_id: string;
|
|
85
|
+
output?: string;
|
|
86
|
+
}
|
|
87
|
+
export interface CodexMessagePayload {
|
|
88
|
+
type: "message";
|
|
89
|
+
role?: string;
|
|
90
|
+
content?: unknown;
|
|
91
|
+
}
|
|
92
|
+
export interface CodexReasoningPayload {
|
|
93
|
+
type: "reasoning";
|
|
94
|
+
encrypted_content?: string;
|
|
95
|
+
summary?: unknown;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Codex emits web searches via this response_item shape, NOT as a
|
|
99
|
+
* `function_call` with `name === "web_search"`. Live-verified on Codex
|
|
100
|
+
* 0.131+ (80+ occurrences in real sessions). Shape:
|
|
101
|
+
* { type: "web_search_call", status, action: { type: "search" | "open_page", query?, queries?[], url? } }
|
|
102
|
+
* Note: no `name` field, no `call_id` field (web search doesn't produce a
|
|
103
|
+
* paired `*_output` event — results land in subsequent assistant message).
|
|
104
|
+
*/
|
|
105
|
+
export interface CodexWebSearchCallPayload {
|
|
106
|
+
type: "web_search_call";
|
|
107
|
+
status?: string;
|
|
108
|
+
action?: {
|
|
109
|
+
type?: string;
|
|
110
|
+
query?: string;
|
|
111
|
+
queries?: string[];
|
|
112
|
+
url?: string;
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
export type CodexResponseItemPayload = CodexFunctionCallPayload | CodexFunctionCallOutputPayload | CodexCustomToolCallPayload | CodexCustomToolCallOutputPayload | CodexWebSearchCallPayload | CodexMessagePayload | CodexReasoningPayload;
|
|
116
|
+
export type CodexEventMsgType = "task_started" | "token_count" | "agent_message" | "user_message" | "turn_aborted" | "patch_apply_end" | "mcp_tool_call_end" | "task_complete";
|
|
117
|
+
export interface CodexTaskStartedPayload {
|
|
118
|
+
type: "task_started";
|
|
119
|
+
turn_id: string;
|
|
120
|
+
started_at: number;
|
|
121
|
+
model_context_window?: number;
|
|
122
|
+
collaboration_mode_kind?: string;
|
|
123
|
+
}
|
|
124
|
+
export interface CodexTokenUsage {
|
|
125
|
+
input_tokens: number;
|
|
126
|
+
cached_input_tokens: number;
|
|
127
|
+
output_tokens: number;
|
|
128
|
+
reasoning_output_tokens: number;
|
|
129
|
+
total_tokens: number;
|
|
130
|
+
}
|
|
131
|
+
export interface CodexRateLimitWindow {
|
|
132
|
+
used_percent: number;
|
|
133
|
+
window_minutes: number;
|
|
134
|
+
resets_at?: number;
|
|
135
|
+
}
|
|
136
|
+
export interface CodexRateLimits {
|
|
137
|
+
limit_id?: string;
|
|
138
|
+
limit_name?: string | null;
|
|
139
|
+
primary?: CodexRateLimitWindow | null;
|
|
140
|
+
secondary?: CodexRateLimitWindow | null;
|
|
141
|
+
credits?: unknown;
|
|
142
|
+
plan_type?: string | null;
|
|
143
|
+
}
|
|
144
|
+
export interface CodexTokenCountPayload {
|
|
145
|
+
type: "token_count";
|
|
146
|
+
info: {
|
|
147
|
+
total_token_usage: CodexTokenUsage;
|
|
148
|
+
last_token_usage: CodexTokenUsage;
|
|
149
|
+
model_context_window?: number;
|
|
150
|
+
};
|
|
151
|
+
rate_limits?: CodexRateLimits;
|
|
152
|
+
}
|
|
153
|
+
export interface CodexAgentMessagePayload {
|
|
154
|
+
type: "agent_message";
|
|
155
|
+
message: string;
|
|
156
|
+
phase?: string;
|
|
157
|
+
}
|
|
158
|
+
export interface CodexUserMessagePayload {
|
|
159
|
+
type: "user_message";
|
|
160
|
+
message?: string;
|
|
161
|
+
}
|
|
162
|
+
export interface CodexTurnAbortedPayload {
|
|
163
|
+
type: "turn_aborted";
|
|
164
|
+
reason?: string;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Codex's authoritative apply_patch outcome event. Paired with the
|
|
168
|
+
* `custom_tool_call.call_id` of the originating `apply_patch` request.
|
|
169
|
+
* `success: false` means the patch was REJECTED (e.g. "Failed to find
|
|
170
|
+
* expected lines") — analytics must NOT count its lines_added/removed
|
|
171
|
+
* toward `code_changes`. The `changes` map carries per-file authoritative
|
|
172
|
+
* `unified_diff` strings (currently unused by projection; future cleanup
|
|
173
|
+
* could derive lines_added/removed from THIS rather than parsing the
|
|
174
|
+
* request patch body).
|
|
175
|
+
*/
|
|
176
|
+
/**
|
|
177
|
+
* Codex's turn-completion event — fires once per cleanly-completed turn
|
|
178
|
+
* (paired with `task_started`; ABSENT when the turn was aborted via
|
|
179
|
+
* `turn_aborted`). Carries Codex-host-measured `duration_ms` (wall-clock
|
|
180
|
+
* including tool execution) and `time_to_first_token_ms` (latency from
|
|
181
|
+
* task_started to first model token). Empirical: 65 events across 69
|
|
182
|
+
* rollouts; 19 sessions had task_started without task_complete (all paired
|
|
183
|
+
* with turn_aborted — confirms task_complete = success marker).
|
|
184
|
+
*
|
|
185
|
+
* Wire surface deferred: accumulator captures these for future emission
|
|
186
|
+
* (`time.average_turn_duration_ms` / `time.average_first_token_ms`) once
|
|
187
|
+
* the wire schema is extended.
|
|
188
|
+
*/
|
|
189
|
+
export interface CodexTaskCompletePayload {
|
|
190
|
+
type: "task_complete";
|
|
191
|
+
turn_id?: string;
|
|
192
|
+
last_agent_message?: string;
|
|
193
|
+
completed_at?: number;
|
|
194
|
+
duration_ms?: number;
|
|
195
|
+
time_to_first_token_ms?: number;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Codex's MCP tool-call outcome event — fires per `function_call` with an
|
|
199
|
+
* `mcp__*` namespace (one per call, success OR failure). The `result` field
|
|
200
|
+
* is the Rust `Result<>` variant: `{Ok: {content: ...}}` on success,
|
|
201
|
+
* `{Err: "<message>"}` on failure. Critically: **cancelled MCP calls
|
|
202
|
+
* (`Err: "user cancelled MCP tool call"`) produce NO paired
|
|
203
|
+
* `function_call_output`** — without this handler, the cancellation is
|
|
204
|
+
* silently invisible to our text-based error classifier in
|
|
205
|
+
* `processToolCallOutput`. Live-verified: 417 events across 69 rollouts;
|
|
206
|
+
* cancellations observed for `echo_user_level` + `browser-devtools` MCP
|
|
207
|
+
* tools.
|
|
208
|
+
*
|
|
209
|
+
* The wire also carries `duration` (Codex-measured tool latency) which we
|
|
210
|
+
* don't yet aggregate; reserved for future per-tool latency analytics.
|
|
211
|
+
*/
|
|
212
|
+
export interface CodexMcpToolCallEndPayload {
|
|
213
|
+
type: "mcp_tool_call_end";
|
|
214
|
+
call_id?: string;
|
|
215
|
+
invocation?: {
|
|
216
|
+
server?: string;
|
|
217
|
+
tool?: string;
|
|
218
|
+
arguments?: unknown;
|
|
219
|
+
};
|
|
220
|
+
duration?: {
|
|
221
|
+
secs?: number;
|
|
222
|
+
nanos?: number;
|
|
223
|
+
};
|
|
224
|
+
result?: {
|
|
225
|
+
Ok?: unknown;
|
|
226
|
+
Err?: string;
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
export interface CodexPatchApplyEndPayload {
|
|
230
|
+
type: "patch_apply_end";
|
|
231
|
+
call_id?: string;
|
|
232
|
+
turn_id?: string;
|
|
233
|
+
success: boolean;
|
|
234
|
+
stdout?: string;
|
|
235
|
+
stderr?: string;
|
|
236
|
+
changes?: Record<string, {
|
|
237
|
+
type?: string;
|
|
238
|
+
unified_diff?: string;
|
|
239
|
+
move_path?: string | null;
|
|
240
|
+
}>;
|
|
241
|
+
status?: string;
|
|
242
|
+
}
|
|
243
|
+
export type CodexEventMsgPayload = CodexTaskStartedPayload | CodexTokenCountPayload | CodexAgentMessagePayload | CodexUserMessagePayload | CodexTurnAbortedPayload | CodexPatchApplyEndPayload | CodexMcpToolCallEndPayload | CodexTaskCompletePayload;
|
|
244
|
+
export type CodexRolloutItem = CodexRolloutLine<CodexSessionMetaPayload> | CodexRolloutLine<CodexTurnContextPayload> | CodexRolloutLine<CodexResponseItemPayload> | CodexRolloutLine<CodexEventMsgPayload>;
|
|
245
|
+
/** Type guard: line is an event_msg with payload.type === `T`. */
|
|
246
|
+
export declare function isEventMsg<T extends CodexEventMsgType>(line: CodexRolloutLine, payloadType: T): line is CodexRolloutLine<Extract<CodexEventMsgPayload, {
|
|
247
|
+
type: T;
|
|
248
|
+
}>>;
|
|
249
|
+
/** Type guard: line is a response_item with payload.type === `T`. */
|
|
250
|
+
export declare function isResponseItem<T extends CodexResponseItemPayloadType>(line: CodexRolloutLine, payloadType: T): line is CodexRolloutLine<Extract<CodexResponseItemPayload, {
|
|
251
|
+
type: T;
|
|
252
|
+
}>>;
|
|
253
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/analytics/codex/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Codex rollout JSONL — typed shapes.
|
|
4
|
+
*
|
|
5
|
+
* Codex writes one JSONL line per `RolloutItem` (defined in
|
|
6
|
+
* `codex-rs/protocol/src/protocol.rs:2779`). Each line has the wrapper
|
|
7
|
+
* shape `{ timestamp: ISO8601, type: TopType, payload: Payload }`.
|
|
8
|
+
*
|
|
9
|
+
* Only the fields IronBee analytics consumes are typed. Everything else
|
|
10
|
+
* stays `unknown` so we don't crash on harmless schema drift.
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.isEventMsg = isEventMsg;
|
|
14
|
+
exports.isResponseItem = isResponseItem;
|
|
15
|
+
/** Type guard: line is an event_msg with payload.type === `T`. */
|
|
16
|
+
function isEventMsg(line, payloadType) {
|
|
17
|
+
return (line.type === "event_msg" &&
|
|
18
|
+
typeof line.payload === "object" &&
|
|
19
|
+
line.payload !== null &&
|
|
20
|
+
line.payload.type === payloadType);
|
|
21
|
+
}
|
|
22
|
+
/** Type guard: line is a response_item with payload.type === `T`. */
|
|
23
|
+
function isResponseItem(line, payloadType) {
|
|
24
|
+
return (line.type === "response_item" &&
|
|
25
|
+
typeof line.payload === "object" &&
|
|
26
|
+
line.payload !== null &&
|
|
27
|
+
line.payload.type === payloadType);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/analytics/codex/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AAqTH,gCAUC;AAGD,wCAUC;AAxBD,kEAAkE;AAClE,SAAgB,UAAU,CACtB,IAAsB,EACtB,WAAc;IAEd,OAAO,CACH,IAAI,CAAC,IAAI,KAAK,WAAW;QACzB,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;QAChC,IAAI,CAAC,OAAO,KAAK,IAAI;QACpB,IAAI,CAAC,OAA6B,CAAC,IAAI,KAAK,WAAW,CAC3D,CAAC;AACN,CAAC;AAED,qEAAqE;AACrE,SAAgB,cAAc,CAC1B,IAAsB,EACtB,WAAc;IAEd,OAAO,CACH,IAAI,CAAC,IAAI,KAAK,eAAe;QAC7B,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;QAChC,IAAI,CAAC,OAAO,KAAK,IAAI;QACpB,IAAI,CAAC,OAA6B,CAAC,IAAI,KAAK,WAAW,CAC3D,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../../../src/analytics/shared/classifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAMvC,eAAO,MAAM,cAAc,EAAE,MAAmO,CAAC;AAEjQ,eAAO,MAAM,gBAAgB,EAAE,MAAqK,CAAC;AAErM,eAAO,MAAM,iBAAiB,EAAE,MAAkK,CAAC;AAEnM,eAAO,MAAM,mBAAmB,EAAE,MAA4K,CAAC;AAE/M,eAAO,MAAM,iBAAiB,EAAE,MAA2K,CAAC;AAE5M,eAAO,MAAM,aAAa,EAAE,MAAoW,CAAC;AAEjY,eAAO,MAAM,eAAe,EAAE,MAAiJ,CAAC;AAEhL,eAAO,MAAM,WAAW,EAAE,MAA0B,CAAC;AAMrD,sEAAsE;AACtE,eAAO,MAAM,aAAa,EAAE,MAqC3B,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,cAAc,EAAE,MA0D5B,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,gBAAgB,EAAE,MAoC9B,CAAC;AAEF,sBAAsB;AACtB,eAAO,MAAM,YAAY,EAAE,MAA0M,CAAC;AA6CtO,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,GAAG,EAAE,OAAO,CAAC;CAChB;AAED,wFAAwF;AACxF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAiBxE;AAMD,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACjB;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CASnF;AAED,wBAAgB,oBAAoB,IAAI,eAAe,CAEtD;AAMD,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,iBAAiB,IAAI,YAAY,CAEhD;AAED,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAQ5E;AAMD,MAAM,WAAW,WAAW;IACxB,iBAAiB,EAAE,mBAAmB,CAAC;IACvC,YAAY,EAAE,eAAe,CAAC;IAC9B,cAAc,EAAE,YAAY,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,WAAW,GAAG,YAAY,CAsGzD"}
|
|
@@ -186,12 +186,21 @@ const BASH_TOOLS = new Set([
|
|
|
186
186
|
]);
|
|
187
187
|
const TASK_TOOLS = new Set([
|
|
188
188
|
"Task", "Agent", "AgentSpawn", "TodoWrite",
|
|
189
|
+
// Newer Claude Code durable-task tools — semantically task/plan
|
|
190
|
+
// operations. Without these the classifier's `task` flag doesn't
|
|
191
|
+
// light up for sessions that drive work via the durable task list
|
|
192
|
+
// (real corpus shows hundreds of TaskCreate / TaskUpdate per session).
|
|
193
|
+
"TaskCreate", "TaskUpdate", "TaskGet", "TaskList",
|
|
189
194
|
]);
|
|
190
195
|
const SEARCH_TOOLS = new Set([
|
|
191
196
|
"WebSearch", "WebFetch", "ToolSearch",
|
|
192
197
|
]);
|
|
193
198
|
const PLAN_TOOLS = new Set([
|
|
194
199
|
"TodoWrite", "ExitPlanMode", "Plan",
|
|
200
|
+
// Durable-task tools double as planning operations (each TaskCreate /
|
|
201
|
+
// TaskUpdate is an explicit plan-state mutation). Keeping them in
|
|
202
|
+
// both buckets is intentional — mirrors TodoWrite's dual membership.
|
|
203
|
+
"TaskCreate", "TaskUpdate",
|
|
195
204
|
]);
|
|
196
205
|
/** Run all user-msg regexes on the prompt text — privacy-safe (only flags returned). */
|
|
197
206
|
function extractUserMsgKeywords(text) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../../src/analytics/shared/classifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/analytics/shared/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AA6BvC;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAQnD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EACpC,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,MAAM,GACvB,MAAM,CAwBR"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/analytics/shared/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Heuristic conversion factor for estimating tokens from byte length when
|
|
3
|
+
* we don't have an authoritative `usage` field to read from. Used by the
|
|
4
|
+
* per-tool input-side attribution: a tool_result.content is part of the
|
|
5
|
+
* NEXT assistant message's `input_tokens`, but we can't easily compute
|
|
6
|
+
* "how many of those input_tokens are this tool's contribution" without
|
|
7
|
+
* tokenizing. Instead we estimate `bytes / BYTES_PER_TOKEN`.
|
|
8
|
+
*
|
|
9
|
+
* Anthropic / OpenAI BPE tokenizers both average ~3.5–4.5 bytes/token for
|
|
10
|
+
* typical tool_result content (mix of code, JSON, English). 4 is a
|
|
11
|
+
* defensible middle. Shared across Claude + Codex projection paths.
|
|
12
|
+
*/
|
|
13
|
+
export declare const BYTES_PER_TOKEN: number;
|
|
14
|
+
//# sourceMappingURL=tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/analytics/shared/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,EAAE,MAAU,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BYTES_PER_TOKEN = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Heuristic conversion factor for estimating tokens from byte length when
|
|
6
|
+
* we don't have an authoritative `usage` field to read from. Used by the
|
|
7
|
+
* per-tool input-side attribution: a tool_result.content is part of the
|
|
8
|
+
* NEXT assistant message's `input_tokens`, but we can't easily compute
|
|
9
|
+
* "how many of those input_tokens are this tool's contribution" without
|
|
10
|
+
* tokenizing. Instead we estimate `bytes / BYTES_PER_TOKEN`.
|
|
11
|
+
*
|
|
12
|
+
* Anthropic / OpenAI BPE tokenizers both average ~3.5–4.5 bytes/token for
|
|
13
|
+
* typical tool_result content (mix of code, JSON, English). 4 is a
|
|
14
|
+
* defensible middle. Shared across Claude + Codex projection paths.
|
|
15
|
+
*/
|
|
16
|
+
exports.BYTES_PER_TOKEN = 4;
|
|
17
|
+
//# sourceMappingURL=tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/analytics/shared/tokens.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;GAWG;AACU,QAAA,eAAe,GAAW,CAAC,CAAC"}
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
* (`input_size`, `output_size`) plus a heuristic `approximated_*_tokens`;
|
|
19
19
|
* there is no per-tool token attribution and no `unattributed_*` residual.
|
|
20
20
|
*/
|
|
21
|
+
import { Event } from "../../lib/event";
|
|
21
22
|
/**
|
|
22
23
|
* Current schema_version emitted on the wire. Kept at "1.0" by operator
|
|
23
24
|
* choice — the internal refactor (logical groups + byte-based ToolUsage)
|
|
@@ -29,7 +30,7 @@ export declare const SCHEMA_VERSION: string;
|
|
|
29
30
|
export type ContextTurnBucket = "1-3" | "4-10" | "11-25" | "26-50" | "51-100" | "100+";
|
|
30
31
|
/** Closed list of error categories derived from tool_result.content keyword match. */
|
|
31
32
|
export type ToolErrorCategory = "command_failed" | "user_rejected" | "edit_failed" | "file_changed" | "file_too_large" | "file_not_found" | "other";
|
|
32
|
-
export type TranscriptSource = "claude-code" | "cursor" | "missing";
|
|
33
|
+
export type TranscriptSource = "claude-code" | "cursor" | "codex" | "missing";
|
|
33
34
|
/**
|
|
34
35
|
* Per-turn category label assigned by the heuristic classifier in
|
|
35
36
|
* `src/analytics/classifier.ts`. Mirrors codeburn's taxonomy with extended
|
|
@@ -462,10 +463,28 @@ export interface AnalyticsSessionState {
|
|
|
462
463
|
* Anthropic API message ids already counted across all prior slices.
|
|
463
464
|
* Claude Code's transcript writer occasionally persists the same
|
|
464
465
|
* assistant API response on multiple JSONL lines; projection skips
|
|
465
|
-
*
|
|
466
|
-
* API call counts once
|
|
466
|
+
* usage / cost / counter increments on any assistant line whose
|
|
467
|
+
* `message.id` is in this set so a single API call counts once
|
|
468
|
+
* toward tokens / cost. Content blocks (tool_use, text, thinking)
|
|
469
|
+
* are deduped separately by `seen_tool_use_ids` because Claude Code
|
|
470
|
+
* 2.1+ splits a single API response's content blocks across
|
|
471
|
+
* multiple JSONL lines that share the same msg_id but carry
|
|
472
|
+
* DIFFERENT tool_use blocks per chunk.
|
|
467
473
|
*/
|
|
468
474
|
seen_assistant_message_ids?: string[];
|
|
475
|
+
/**
|
|
476
|
+
* Anthropic API tool_use ids already counted across all prior
|
|
477
|
+
* slices. Per-tool_use dedup necessary because Claude Code 2.1+
|
|
478
|
+
* splits a single API response's content blocks across multiple
|
|
479
|
+
* JSONL lines (each carrying the SAME message.id but DIFFERENT
|
|
480
|
+
* tool_use blocks). Projection walks content blocks on every
|
|
481
|
+
* chunk regardless of msg_id, but skips any tool_use block whose
|
|
482
|
+
* `id` is in this set so the legacy "true duplicate re-emit" case
|
|
483
|
+
* doesn't inflate counts. Together with `seen_assistant_message_ids`,
|
|
484
|
+
* this gives full coverage of both streaming-split and
|
|
485
|
+
* true-duplicate transcript shapes.
|
|
486
|
+
*/
|
|
487
|
+
seen_tool_use_ids?: string[];
|
|
469
488
|
};
|
|
470
489
|
}
|
|
471
490
|
/**
|
|
@@ -758,7 +777,6 @@ export interface SessionTurnStepAnalytics {
|
|
|
758
777
|
/** Context tokens at this step's assistant message (single sample). */
|
|
759
778
|
context_tokens?: number;
|
|
760
779
|
}
|
|
761
|
-
import { Event } from "../lib/event";
|
|
762
780
|
/**
|
|
763
781
|
* Wire event format. Extends the generic `Event` base (see
|
|
764
782
|
* `src/lib/event.ts`) so the collector envelope shape stays uniform
|
|
@@ -777,8 +795,8 @@ export interface SessionTurnStepEvent extends Event {
|
|
|
777
795
|
step: SessionTurnStepAnalytics;
|
|
778
796
|
}
|
|
779
797
|
/**
|
|
780
|
-
* Per-API-request body. Mirrors the
|
|
781
|
-
* record per assistant message line in the transcript). Stored in
|
|
798
|
+
* Per-API-request body. Mirrors the collector's `api_request` envelope
|
|
799
|
+
* (one record per assistant message line in the transcript). Stored in
|
|
782
800
|
* `internal.pending_api_request_events` as the body-only struct; emit
|
|
783
801
|
* wraps with the {@link Event} envelope at drain time.
|
|
784
802
|
*
|
|
@@ -802,7 +820,7 @@ export interface SessionTurnStepEvent extends Event {
|
|
|
802
820
|
* (synthetic placeholder messages).
|
|
803
821
|
* - `duration`: NEVER populated from transcript — Claude Code's transcript
|
|
804
822
|
* does not carry per-API-call latency. Always null in transcript-derived
|
|
805
|
-
* events. (
|
|
823
|
+
* events. (Producers wiring their own server-side timing fill this.)
|
|
806
824
|
*/
|
|
807
825
|
export interface APIRequestAnalytics {
|
|
808
826
|
id: string;
|
|
@@ -822,8 +840,8 @@ export interface APIRequestAnalytics {
|
|
|
822
840
|
}
|
|
823
841
|
/**
|
|
824
842
|
* Wire event for a single API request. Flat field layout (no nested body
|
|
825
|
-
* object) — matches the
|
|
826
|
-
*
|
|
843
|
+
* object) — matches the collector's `api_request` envelope exactly so
|
|
844
|
+
* the schema stays uniform across producers.
|
|
827
845
|
*/
|
|
828
846
|
export interface APIRequestEvent extends Event {
|
|
829
847
|
type: "api_request";
|
|
@@ -839,6 +857,21 @@ export interface APIRequestEvent extends Event {
|
|
|
839
857
|
cache_creation_tokens: number;
|
|
840
858
|
cost_usd: number;
|
|
841
859
|
duration: number | null;
|
|
860
|
+
/**
|
|
861
|
+
* Codex-only bonus signal: reasoning tokens billed at output rate.
|
|
862
|
+
* Already INCLUDED in `output_tokens` (subset, not additive). Omitted
|
|
863
|
+
* from Claude api_request events (Anthropic transcripts don't carry
|
|
864
|
+
* a separate reasoning bucket). Optional so Claude side drops it
|
|
865
|
+
* naturally via JSON.stringify undefined-omission.
|
|
866
|
+
*/
|
|
867
|
+
reasoning_tokens?: number;
|
|
868
|
+
/**
|
|
869
|
+
* Codex-only correlation: the parent `task_started.turn_id` this
|
|
870
|
+
* api_request belongs to. Optional so Claude api_request shapes stay
|
|
871
|
+
* unchanged (Claude uses a separate `activity_id` envelope field for
|
|
872
|
+
* turn correlation).
|
|
873
|
+
*/
|
|
874
|
+
turn_id?: string | null;
|
|
842
875
|
}
|
|
843
876
|
/**
|
|
844
877
|
* Delta produced by projecting a single slice of new transcript bytes.
|