@ironbee-ai/cli 0.14.1 → 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 +12 -0
- package/README.md +2 -95
- 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 +18 -14
- 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/session-start.js +1 -1
- package/dist/clients/cursor/hooks/session-start.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 +22 -13
- 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/commands/status.js +1 -1
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +1 -2
- package/dist/commands/verify.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 -14
- 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/fs-prune.d.ts +1 -1
- package/dist/lib/fs-prune.js +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/dist/tui/sessions/area.d.ts.map +1 -1
- package/dist/tui/sessions/area.js +2 -45
- package/dist/tui/sessions/area.js.map +1 -1
- package/package.json +2 -1
- package/dist/analysis/code-changes.d.ts +0 -22
- package/dist/analysis/code-changes.d.ts.map +0 -1
- package/dist/analysis/code-changes.js +0 -141
- package/dist/analysis/code-changes.js.map +0 -1
- package/dist/analysis/cross-session.d.ts +0 -34
- package/dist/analysis/cross-session.d.ts.map +0 -1
- package/dist/analysis/cross-session.js +0 -230
- package/dist/analysis/cross-session.js.map +0 -1
- package/dist/analysis/fix-effectiveness.d.ts +0 -16
- package/dist/analysis/fix-effectiveness.d.ts.map +0 -1
- package/dist/analysis/fix-effectiveness.js +0 -99
- package/dist/analysis/fix-effectiveness.js.map +0 -1
- package/dist/analysis/scoring.d.ts +0 -15
- package/dist/analysis/scoring.d.ts.map +0 -1
- package/dist/analysis/scoring.js +0 -59
- package/dist/analysis/scoring.js.map +0 -1
- package/dist/analysis/time-analysis.d.ts +0 -22
- package/dist/analysis/time-analysis.d.ts.map +0 -1
- package/dist/analysis/time-analysis.js +0 -174
- package/dist/analysis/time-analysis.js.map +0 -1
- package/dist/analysis/verdict-details.d.ts +0 -23
- package/dist/analysis/verdict-details.d.ts.map +0 -1
- package/dist/analysis/verdict-details.js +0 -59
- package/dist/analysis/verdict-details.js.map +0 -1
- package/dist/analysis/verification-quality.d.ts +0 -20
- package/dist/analysis/verification-quality.d.ts.map +0 -1
- package/dist/analysis/verification-quality.js +0 -145
- package/dist/analysis/verification-quality.js.map +0 -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/clients/claude/commands/ironbee-analyze.md +0 -42
- package/dist/clients/cursor/commands/ironbee-analyze/SKILL.md +0 -48
- package/dist/commands/analyze.d.ts +0 -3
- package/dist/commands/analyze.d.ts.map +0 -1
- package/dist/commands/analyze.js +0 -329
- package/dist/commands/analyze.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,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Codex — SessionStart hook adapter
|
|
4
|
+
*
|
|
5
|
+
* Appends a `session_start` entry to actions.jsonl, populates session-state
|
|
6
|
+
* with auth info from `~/.codex/auth.json` (cleaner than Claude — explicit
|
|
7
|
+
* `auth_mode` enum vs JWT decode), then runs the standard reconcile pass to
|
|
8
|
+
* close any abandoned cycles from a prior session.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.run = run;
|
|
12
|
+
const actions_1 = require("../../../hooks/core/actions");
|
|
13
|
+
const ids_1 = require("../../../import/ids");
|
|
14
|
+
const session_state_1 = require("../../../hooks/core/session-state");
|
|
15
|
+
const config_1 = require("../../../lib/config");
|
|
16
|
+
const logger_1 = require("../../../lib/logger");
|
|
17
|
+
const output_1 = require("../../../lib/output");
|
|
18
|
+
const stdin_1 = require("../../../lib/stdin");
|
|
19
|
+
const telemetry_1 = require("../../../lib/telemetry");
|
|
20
|
+
const util_1 = require("../util");
|
|
21
|
+
async function run(projectDir) {
|
|
22
|
+
const input = (0, util_1.parseCodexHookStdin)((0, stdin_1.readStdin)());
|
|
23
|
+
const sessionId = input.session_id ?? "default";
|
|
24
|
+
const sessionDir = `${projectDir}/.ironbee/sessions/${sessionId}`;
|
|
25
|
+
const actionsFile = `${sessionDir}/actions.jsonl`;
|
|
26
|
+
(0, logger_1.setLogFile)(`${sessionDir}/session.log`);
|
|
27
|
+
const usage = (0, util_1.resolveCodexUsage)();
|
|
28
|
+
if (usage.userEmail) {
|
|
29
|
+
(0, session_state_1.setUserEmail)(sessionDir, usage.userEmail);
|
|
30
|
+
}
|
|
31
|
+
(0, session_state_1.setUsage)(sessionDir, {
|
|
32
|
+
usage_type: usage.usageType ?? null,
|
|
33
|
+
usage_plan: usage.usagePlan ?? null,
|
|
34
|
+
});
|
|
35
|
+
const entry = {
|
|
36
|
+
...(0, actions_1.baseFields)(actionsFile),
|
|
37
|
+
// Deterministic event.id — matches import's `deriveSessionStartEventId`.
|
|
38
|
+
// Without this override, live's random UUID + import's deterministic
|
|
39
|
+
// id never collide on `(session_id, id)` → re-import after live
|
|
40
|
+
// produces duplicate session_start rows.
|
|
41
|
+
id: (0, ids_1.deriveSessionStartEventId)(sessionId),
|
|
42
|
+
type: "session_start",
|
|
43
|
+
timestamp: Date.now(),
|
|
44
|
+
session_id: sessionId,
|
|
45
|
+
client: "codex",
|
|
46
|
+
source: input.source ?? "startup",
|
|
47
|
+
};
|
|
48
|
+
await (0, actions_1.appendAction)(actionsFile, entry);
|
|
49
|
+
await (0, session_state_1.reconcileSessionState)(sessionDir, actionsFile, actions_1.appendAction);
|
|
50
|
+
const verificationEnabled = (0, config_1.getVerificationEnabled)((0, config_1.loadConfig)(projectDir));
|
|
51
|
+
await (0, telemetry_1.trackSessionStart)("codex", sessionId, verificationEnabled, projectDir);
|
|
52
|
+
logger_1.logger.debug(`session-start: ${sessionId}`);
|
|
53
|
+
// Codex SessionStart accepts `additionalContext` in hookSpecificOutput
|
|
54
|
+
// for injecting into agent context. In monitoring mode we ship nothing.
|
|
55
|
+
if (!verificationEnabled) {
|
|
56
|
+
(0, output_1.writeAndExit)(JSON.stringify({}), 0);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const verdictPass = JSON.stringify({
|
|
60
|
+
session_id: sessionId,
|
|
61
|
+
status: "pass",
|
|
62
|
+
checks: ["form submits successfully", "new item appears in list"],
|
|
63
|
+
});
|
|
64
|
+
const verdictFail = JSON.stringify({
|
|
65
|
+
session_id: sessionId,
|
|
66
|
+
status: "fail",
|
|
67
|
+
checks: ["form renders", "submit button unresponsive"],
|
|
68
|
+
issues: ["button click handler not firing", "TypeError in console"],
|
|
69
|
+
});
|
|
70
|
+
const context = `IRONBEE VERIFICATION — SESSION ACTIVE
|
|
71
|
+
Session ID: ${sessionId}
|
|
72
|
+
|
|
73
|
+
You MUST verify all code changes in the browser before completing any task.
|
|
74
|
+
After EVERY verification attempt, you MUST submit a verdict BEFORE doing anything else.
|
|
75
|
+
- If pass → submit pass verdict
|
|
76
|
+
- If fail → submit fail verdict FIRST, then fix. Do NOT skip to fixing code without submitting.
|
|
77
|
+
|
|
78
|
+
Submit via shell:
|
|
79
|
+
echo '${verdictPass}' | ironbee hook submit-verdict
|
|
80
|
+
|
|
81
|
+
On fail (issues is required):
|
|
82
|
+
echo '${verdictFail}' | ironbee hook submit-verdict
|
|
83
|
+
|
|
84
|
+
Required fields: session_id, status, checks
|
|
85
|
+
On fail, include: issues (array of strings describing what failed)
|
|
86
|
+
On pass after a previous fail, include: fixes (array of strings describing what was fixed)`;
|
|
87
|
+
(0, output_1.writeAndExit)(JSON.stringify({
|
|
88
|
+
hookSpecificOutput: {
|
|
89
|
+
hookEventName: "SessionStart",
|
|
90
|
+
additionalContext: context,
|
|
91
|
+
},
|
|
92
|
+
}), 0);
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=session-start.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../../../src/clients/codex/hooks/session-start.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codex — PostToolUse hook adapter (monitoring-only mode, matcher: `.*`)
|
|
3
|
+
*
|
|
4
|
+
* Lean variant of track-action.ts for `verification.enable: false`. Submits
|
|
5
|
+
* a send_event job for every tool (no devtools-only path, no recording
|
|
6
|
+
* state, no actions.jsonl write for devtools). Also acts as activity-start
|
|
7
|
+
* fallback if no activity was opened yet.
|
|
8
|
+
*/
|
|
9
|
+
export declare function run(projectDir: string): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=track-action-monitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track-action-monitor.d.ts","sourceRoot":"","sources":["../../../../src/clients/codex/hooks/track-action-monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAyEH,wBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8F3D"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Codex — PostToolUse hook adapter (monitoring-only mode, matcher: `.*`)
|
|
4
|
+
*
|
|
5
|
+
* Lean variant of track-action.ts for `verification.enable: false`. Submits
|
|
6
|
+
* a send_event job for every tool (no devtools-only path, no recording
|
|
7
|
+
* state, no actions.jsonl write for devtools). Also acts as activity-start
|
|
8
|
+
* fallback if no activity was opened yet.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.run = run;
|
|
12
|
+
const actions_1 = require("../../../hooks/core/actions");
|
|
13
|
+
const ids_1 = require("../../../import/ids");
|
|
14
|
+
const activity_1 = require("../../../hooks/core/activity");
|
|
15
|
+
const session_state_1 = require("../../../hooks/core/session-state");
|
|
16
|
+
const tool_use_stash_1 = require("../../../hooks/core/tool-use-stash");
|
|
17
|
+
const config_1 = require("../../../lib/config");
|
|
18
|
+
const logger_1 = require("../../../lib/logger");
|
|
19
|
+
const output_1 = require("../../../lib/output");
|
|
20
|
+
const stdin_1 = require("../../../lib/stdin");
|
|
21
|
+
const queue_1 = require("../../../queue");
|
|
22
|
+
const util_1 = require("../util");
|
|
23
|
+
/** Same failure detection set as enabled-mode track-action.ts. Keep in sync. */
|
|
24
|
+
function detectFailureMonitor(toolResponse) {
|
|
25
|
+
if (toolResponse === undefined || toolResponse === null) {
|
|
26
|
+
return { isError: false };
|
|
27
|
+
}
|
|
28
|
+
if (typeof toolResponse === "object" && toolResponse !== null) {
|
|
29
|
+
const rec = toolResponse;
|
|
30
|
+
if (rec.isError === true || rec.is_error === true) {
|
|
31
|
+
const msg = rec.error ?? rec.message ?? rec.errorMessage;
|
|
32
|
+
return { isError: true, errorText: typeof msg === "string" ? msg : JSON.stringify(rec).slice(0, 500) };
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (typeof toolResponse === "string") {
|
|
36
|
+
const t = toolResponse;
|
|
37
|
+
if (/(?:^|\n)Process exited with code [1-9]/.test(t)
|
|
38
|
+
|| /^Exit code:\s*[1-9]/m.test(t)
|
|
39
|
+
|| /apply_patch verification failed/i.test(t)
|
|
40
|
+
|| /failed to find expected lines/i.test(t)
|
|
41
|
+
|| /^\s*Error\b/.test(t)
|
|
42
|
+
|| /(?:^|\n)\[Request interrupted by user\]/.test(t)
|
|
43
|
+
// Cross-pipeline parity with enabled-mode track-action.ts +
|
|
44
|
+
// projection.ts classifier — see comment there.
|
|
45
|
+
|| /modified since (?:last )?read|stale read/i.test(t)
|
|
46
|
+
|| /file (?:is )?too large|exceeds/i.test(t)
|
|
47
|
+
|| /file not found|No such file or directory|does not exist/i.test(t)) {
|
|
48
|
+
return { isError: true, errorText: t.slice(0, 500) };
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return { isError: false };
|
|
52
|
+
}
|
|
53
|
+
function safeStringifyBytes(value) {
|
|
54
|
+
if (value === undefined || value === null) {
|
|
55
|
+
return 0;
|
|
56
|
+
}
|
|
57
|
+
// Raw byte count for string values (apply_patch + exec_command output
|
|
58
|
+
// shape) — match enabled-mode track-action.ts + import runner.ts. Without
|
|
59
|
+
// this branch, monitoring mode emits 5-15% inflated tool_response_size
|
|
60
|
+
// vs import — same root as round-18 bug-5.
|
|
61
|
+
if (typeof value === "string") {
|
|
62
|
+
try {
|
|
63
|
+
return Buffer.byteLength(value, "utf8");
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return 0;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
try {
|
|
70
|
+
return Buffer.byteLength(JSON.stringify(value), "utf8");
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
return 0;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
async function run(projectDir) {
|
|
77
|
+
const input = (0, util_1.parseCodexHookStdin)((0, stdin_1.readStdin)());
|
|
78
|
+
const sessionId = input.session_id ?? "default";
|
|
79
|
+
const sessionDir = `${projectDir}/.ironbee/sessions/${sessionId}`;
|
|
80
|
+
const actionsFile = `${sessionDir}/actions.jsonl`;
|
|
81
|
+
(0, logger_1.setLogFile)(`${sessionDir}/session.log`);
|
|
82
|
+
// activity-start fallback (in case UPS didn't fire)
|
|
83
|
+
await (0, activity_1.startActivity)({ sessionDir, actionsFile, source: "pre_tool_use" });
|
|
84
|
+
if (!(0, config_1.isJobQueueEnabled)(projectDir)) {
|
|
85
|
+
(0, output_1.writeAndExit)(JSON.stringify({}), 0);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const rawToolName = input.tool_name ?? "";
|
|
89
|
+
const toolUseId = input.tool_use_id ?? "";
|
|
90
|
+
// tool_input is Record | string | undefined (apply_patch passes raw string)
|
|
91
|
+
const toolInput = input.tool_input;
|
|
92
|
+
const toolResponse = input.tool_response;
|
|
93
|
+
const classified = (0, util_1.classifyCodexTool)(rawToolName);
|
|
94
|
+
const activityId = (0, session_state_1.getActiveActivityId)(sessionDir);
|
|
95
|
+
const projectedInput = (0, util_1.extractCodexToolInput)(rawToolName, toolInput);
|
|
96
|
+
const stashed = (0, tool_use_stash_1.consumeToolUseData)(sessionId, toolUseId);
|
|
97
|
+
let durationMs = null;
|
|
98
|
+
if (stashed?.start_ns) {
|
|
99
|
+
try {
|
|
100
|
+
durationMs = Number((process.hrtime.bigint() - BigInt(stashed.start_ns)) / 1000000n);
|
|
101
|
+
}
|
|
102
|
+
catch (e) {
|
|
103
|
+
logger_1.logger.debug(`derive duration failed: ${e}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
// Parallel-pipeline parity with enabled-mode track-action.ts: omit
|
|
107
|
+
// `activity_id` when no activity is open (Claude/Cursor live use
|
|
108
|
+
// `activityId!` → JSON.stringify drops; Codex was outlier shipping "").
|
|
109
|
+
// Collector schema rejects empty activity_id like it rejects empty fix_id.
|
|
110
|
+
// Cross-client parity: zero `tool_response_size` on failure to match
|
|
111
|
+
// Claude+Cursor (see enabled-mode track-action.ts for full rationale).
|
|
112
|
+
const failureMonitor = detectFailureMonitor(toolResponse);
|
|
113
|
+
const event = {
|
|
114
|
+
...(0, actions_1.baseFields)(actionsFile),
|
|
115
|
+
type: "tool_call",
|
|
116
|
+
timestamp: Date.now(),
|
|
117
|
+
tool_type: classified.tool_type,
|
|
118
|
+
tool_name: classified.tool_name || (0, util_1.normalizeCodexToolName)(rawToolName),
|
|
119
|
+
mcp_server: classified.mcp_server,
|
|
120
|
+
tool_input: projectedInput,
|
|
121
|
+
tool_input_size: safeStringifyBytes(toolInput),
|
|
122
|
+
tool_response_size: failureMonitor.isError ? 0 : safeStringifyBytes(toolResponse),
|
|
123
|
+
duration: durationMs,
|
|
124
|
+
};
|
|
125
|
+
if (activityId) {
|
|
126
|
+
event.activity_id = activityId;
|
|
127
|
+
}
|
|
128
|
+
// Parallel-pipeline parity: enabled-mode track-action.ts (round 15)
|
|
129
|
+
// sets tool_use_id on both devtools + non-devtools branches.
|
|
130
|
+
// Monitoring mode (this file) was left behind. Without this, every
|
|
131
|
+
// tool_call emitted in monitoring mode ships without a join key →
|
|
132
|
+
// collector cannot correlate Codex tool_call events with MCP-side
|
|
133
|
+
// function_call_output events. Cross-mode parity break.
|
|
134
|
+
if (toolUseId) {
|
|
135
|
+
event.tool_use_id = toolUseId;
|
|
136
|
+
}
|
|
137
|
+
// Deterministic event.id parity with import (round 19 fix in
|
|
138
|
+
// enabled-mode track-action.ts). Monitoring mode previously emitted
|
|
139
|
+
// random UUID id → every tool_call duplicated on re-import.
|
|
140
|
+
if (toolUseId.length > 0) {
|
|
141
|
+
event.id = (0, ids_1.deriveToolCallEventIdFromToolUseId)(sessionId, toolUseId);
|
|
142
|
+
}
|
|
143
|
+
// Failure detection — enabled mode has `detectFailure`; monitoring
|
|
144
|
+
// mode previously emitted `error: undefined` for every failed tool
|
|
145
|
+
// → cross-mode parity break. Reuse the same `failureMonitor` computed
|
|
146
|
+
// for `tool_response_size` above.
|
|
147
|
+
if (failureMonitor.isError) {
|
|
148
|
+
event.error = failureMonitor.errorText;
|
|
149
|
+
}
|
|
150
|
+
try {
|
|
151
|
+
(0, queue_1.submit)(projectDir, sessionId, queue_1.SEND_EVENT_TYPE, event);
|
|
152
|
+
}
|
|
153
|
+
catch (e) {
|
|
154
|
+
if (e instanceof queue_1.JobTooLargeError) {
|
|
155
|
+
// Same rationale as enabled-mode track-action.ts: `tool_response`
|
|
156
|
+
// is never on the event in the first place, so an
|
|
157
|
+
// `tool_response_omitted: true` retry strips nothing and
|
|
158
|
+
// re-fails identically. Drop cleanly — matches Claude/Cursor
|
|
159
|
+
// monitor paths.
|
|
160
|
+
logger_1.logger.debug(`track-action-monitor: wire event too large for tool_call ${rawToolName}; dropping`);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
logger_1.logger.debug(`queue submit failed for tool_call ${rawToolName}: ${e}`);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
(0, output_1.writeAndExit)(JSON.stringify({}), 0);
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=track-action-monitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track-action-monitor.js","sourceRoot":"","sources":["../../../../src/clients/codex/hooks/track-action-monitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codex — PreToolUse hook adapter (matcher: `.*`)
|
|
3
|
+
*
|
|
4
|
+
* Codex's PostToolUse stdin does NOT carry `duration_ms` like Claude/Cursor
|
|
5
|
+
* do. To populate `tool_call.duration` on the wire, we stash a monotonic
|
|
6
|
+
* `process.hrtime.bigint()` timestamp at PreToolUse keyed by `tool_use_id`,
|
|
7
|
+
* then derive the delta in the matching `track-action` PostToolUse handler.
|
|
8
|
+
*
|
|
9
|
+
* Hook overhead: ~30-60ms per side (cold node start). For tool calls < 100ms
|
|
10
|
+
* the duration field is dominated by overhead and not useful; for ≥1s calls
|
|
11
|
+
* accuracy is ~95-99%. Orphaned stash entries (interrupted tools whose
|
|
12
|
+
* PostToolUse never fires) are reaped by OS /tmp cleanup.
|
|
13
|
+
*/
|
|
14
|
+
export interface CodexTimingState {
|
|
15
|
+
start_ns: string;
|
|
16
|
+
}
|
|
17
|
+
export declare function run(projectDir: string): Promise<void>;
|
|
18
|
+
//# sourceMappingURL=track-action-pre.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track-action-pre.d.ts","sourceRoot":"","sources":["../../../../src/clients/codex/hooks/track-action-pre.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAa3D"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Codex — PreToolUse hook adapter (matcher: `.*`)
|
|
4
|
+
*
|
|
5
|
+
* Codex's PostToolUse stdin does NOT carry `duration_ms` like Claude/Cursor
|
|
6
|
+
* do. To populate `tool_call.duration` on the wire, we stash a monotonic
|
|
7
|
+
* `process.hrtime.bigint()` timestamp at PreToolUse keyed by `tool_use_id`,
|
|
8
|
+
* then derive the delta in the matching `track-action` PostToolUse handler.
|
|
9
|
+
*
|
|
10
|
+
* Hook overhead: ~30-60ms per side (cold node start). For tool calls < 100ms
|
|
11
|
+
* the duration field is dominated by overhead and not useful; for ≥1s calls
|
|
12
|
+
* accuracy is ~95-99%. Orphaned stash entries (interrupted tools whose
|
|
13
|
+
* PostToolUse never fires) are reaped by OS /tmp cleanup.
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.run = run;
|
|
17
|
+
const logger_1 = require("../../../lib/logger");
|
|
18
|
+
const stdin_1 = require("../../../lib/stdin");
|
|
19
|
+
const tool_use_stash_1 = require("../../../hooks/core/tool-use-stash");
|
|
20
|
+
const util_1 = require("../util");
|
|
21
|
+
async function run(projectDir) {
|
|
22
|
+
const input = (0, util_1.parseCodexHookStdin)((0, stdin_1.readStdin)());
|
|
23
|
+
const sessionId = input.session_id ?? "";
|
|
24
|
+
const toolUseId = input.tool_use_id ?? "";
|
|
25
|
+
if (!sessionId || !toolUseId) {
|
|
26
|
+
process.exit(0);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
(0, logger_1.setLogFile)(`${projectDir}/.ironbee/sessions/${sessionId}/session.log`);
|
|
30
|
+
const state = { start_ns: process.hrtime.bigint().toString() };
|
|
31
|
+
(0, tool_use_stash_1.stashToolUseData)(sessionId, toolUseId, state);
|
|
32
|
+
logger_1.logger.debug(`track-action-pre: stashed start_ns for ${toolUseId}`);
|
|
33
|
+
process.exit(0);
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=track-action-pre.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track-action-pre.js","sourceRoot":"","sources":["../../../../src/clients/codex/hooks/track-action-pre.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;AAWH,kBAaC;AAtBD,gDAAyD;AACzD,8CAA+C;AAC/C,uEAAsE;AACtE,kCAA8C;AAMvC,KAAK,UAAU,GAAG,CAAC,UAAkB;IACxC,MAAM,KAAK,GAA2C,IAAA,0BAAmB,EAAC,IAAA,iBAAS,GAAE,CAAC,CAAC;IACvF,MAAM,SAAS,GAAW,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;IACjD,MAAM,SAAS,GAAW,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;IAClD,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACX,CAAC;IACD,IAAA,mBAAU,EAAC,GAAG,UAAU,sBAAsB,SAAS,cAAc,CAAC,CAAC;IACvE,MAAM,KAAK,GAAqB,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;IACjF,IAAA,iCAAgB,EAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9C,eAAM,CAAC,KAAK,CAAC,0CAA0C,SAAS,EAAE,CAAC,CAAC;IACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codex — PostToolUse hook adapter (matcher: `.*`)
|
|
3
|
+
*
|
|
4
|
+
* Two routes per tool:
|
|
5
|
+
* - **devtools MCP tools** (mcp__{browser,node,backend}-devtools__*): record
|
|
6
|
+
* a `tool_call` entry in actions.jsonl (verify-gate dep), update recording
|
|
7
|
+
* state for browser-devtools. NOT queue-submitted — devtools MCP server
|
|
8
|
+
* self-ships its own tool_call events to the collector.
|
|
9
|
+
* - **All other tools**: submit a `send_event` job to the queue with a
|
|
10
|
+
* whitelisted `tool_input` projection.
|
|
11
|
+
*
|
|
12
|
+
* Codex-specific: derive `duration` from the timing stash written by
|
|
13
|
+
* `track-action-pre.ts` (Codex hook stdin does not carry duration_ms).
|
|
14
|
+
*
|
|
15
|
+
* Codex has NO PostToolUseFailure event — failures fold into PostToolUse
|
|
16
|
+
* with the error embedded in `tool_response`. We detect failure
|
|
17
|
+
* heuristically (looking for `isError: true` on MCP responses); the
|
|
18
|
+
* `failure_type` / `is_interrupt` fields stay null (Codex provides no
|
|
19
|
+
* structured failure schema).
|
|
20
|
+
*/
|
|
21
|
+
export declare function run(projectDir: string): Promise<void>;
|
|
22
|
+
//# sourceMappingURL=track-action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track-action.d.ts","sourceRoot":"","sources":["../../../../src/clients/codex/hooks/track-action.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAuIH,wBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqN3D"}
|