@newrelic/preflight 0.0.1-pre.1 → 1.0.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/LICENSE +183 -0
- package/README.md +498 -0
- package/dist/alerts/alert-log.d.ts +24 -0
- package/dist/alerts/alert-log.d.ts.map +1 -0
- package/dist/alerts/alert-log.js +159 -0
- package/dist/alerts/alert-log.js.map +1 -0
- package/dist/alerts/alert-snapshot-collector.d.ts +168 -0
- package/dist/alerts/alert-snapshot-collector.d.ts.map +1 -0
- package/dist/alerts/alert-snapshot-collector.js +243 -0
- package/dist/alerts/alert-snapshot-collector.js.map +1 -0
- package/dist/alerts/local-alert-engine.d.ts +86 -0
- package/dist/alerts/local-alert-engine.d.ts.map +1 -0
- package/dist/alerts/local-alert-engine.js +466 -0
- package/dist/alerts/local-alert-engine.js.map +1 -0
- package/dist/alerts/local-alert-rule.d.ts +439 -0
- package/dist/alerts/local-alert-rule.d.ts.map +1 -0
- package/dist/alerts/local-alert-rule.js +139 -0
- package/dist/alerts/local-alert-rule.js.map +1 -0
- package/dist/alerts/os-notifier.d.ts +39 -0
- package/dist/alerts/os-notifier.d.ts.map +1 -0
- package/dist/alerts/os-notifier.js +170 -0
- package/dist/alerts/os-notifier.js.map +1 -0
- package/dist/alerts/types.d.ts +35 -0
- package/dist/alerts/types.d.ts.map +1 -0
- package/dist/alerts/types.js +8 -0
- package/dist/alerts/types.js.map +1 -0
- package/dist/config.d.ts +169 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +860 -0
- package/dist/config.js.map +1 -0
- package/dist/dashboard/dashboard-server.d.ts +38 -0
- package/dist/dashboard/dashboard-server.d.ts.map +1 -0
- package/dist/dashboard/dashboard-server.js +207 -0
- package/dist/dashboard/dashboard-server.js.map +1 -0
- package/dist/dashboard/index.d.ts +3 -0
- package/dist/dashboard/index.d.ts.map +1 -0
- package/dist/dashboard/index.js +2 -0
- package/dist/dashboard/index.js.map +1 -0
- package/dist/dashboard/live-event-bus.d.ts +99 -0
- package/dist/dashboard/live-event-bus.d.ts.map +1 -0
- package/dist/dashboard/live-event-bus.js +56 -0
- package/dist/dashboard/live-event-bus.js.map +1 -0
- package/dist/dashboard/routes/api-handler.d.ts +122 -0
- package/dist/dashboard/routes/api-handler.d.ts.map +1 -0
- package/dist/dashboard/routes/api-handler.js +1414 -0
- package/dist/dashboard/routes/api-handler.js.map +1 -0
- package/dist/dashboard/routes/replay-analyzer.d.ts +15 -0
- package/dist/dashboard/routes/replay-analyzer.d.ts.map +1 -0
- package/dist/dashboard/routes/replay-analyzer.js +227 -0
- package/dist/dashboard/routes/replay-analyzer.js.map +1 -0
- package/dist/dashboard/routes/sse-handler.d.ts +4 -0
- package/dist/dashboard/routes/sse-handler.d.ts.map +1 -0
- package/dist/dashboard/routes/sse-handler.js +122 -0
- package/dist/dashboard/routes/sse-handler.js.map +1 -0
- package/dist/dashboard/routes/static-handler.d.ts +3 -0
- package/dist/dashboard/routes/static-handler.d.ts.map +1 -0
- package/dist/dashboard/routes/static-handler.js +103 -0
- package/dist/dashboard/routes/static-handler.js.map +1 -0
- package/dist/data/alerts/conditions/01-daily-cost-spike.json +16 -0
- package/dist/data/alerts/conditions/02-low-efficiency-score.json +16 -0
- package/dist/data/alerts/conditions/03-stuck-loop-rate.json +16 -0
- package/dist/data/alerts/conditions/04-anti-pattern-rate.json +16 -0
- package/dist/data/alerts/conditions/05-session-cost-budget.json +16 -0
- package/dist/data/alerts/conditions-personal/01-personal-daily-cost.json +16 -0
- package/dist/data/alerts/conditions-personal/02-personal-session-cost.json +16 -0
- package/dist/data/alerts/conditions-personal/03-personal-low-efficiency.json +16 -0
- package/dist/data/alerts/conditions-personal/04-personal-anti-pattern-rate.json +16 -0
- package/dist/data/alerts/conditions-personal/05-personal-stuck-loop.json +16 -0
- package/dist/data/alerts/policy.json +4 -0
- package/dist/data/dashboards/ai-coding-assistant-manager-view.json +103 -0
- package/dist/data/dashboards/ai-coding-assistant-overview.json +239 -0
- package/dist/data/dashboards/ai-coding-assistant-personal.json +442 -0
- package/dist/data/dashboards/ai-coding-assistant-platform-comparison.json +320 -0
- package/dist/data/dashboards/ai-coding-assistant-security.json +275 -0
- package/dist/data/dashboards/ai-coding-assistant-session-detail.json +296 -0
- package/dist/data/dashboards/ai-coding-assistant-team-view.json +345 -0
- package/dist/deploy/data-paths.d.ts +22 -0
- package/dist/deploy/data-paths.d.ts.map +1 -0
- package/dist/deploy/data-paths.js +69 -0
- package/dist/deploy/data-paths.js.map +1 -0
- package/dist/deploy/deploy-alerts.d.ts +58 -0
- package/dist/deploy/deploy-alerts.d.ts.map +1 -0
- package/dist/deploy/deploy-alerts.js +371 -0
- package/dist/deploy/deploy-alerts.js.map +1 -0
- package/dist/deploy/deploy-dashboards.d.ts +92 -0
- package/dist/deploy/deploy-dashboards.d.ts.map +1 -0
- package/dist/deploy/deploy-dashboards.js +282 -0
- package/dist/deploy/deploy-dashboards.js.map +1 -0
- package/dist/digest/digest-formatter.d.ts +3 -0
- package/dist/digest/digest-formatter.d.ts.map +1 -0
- package/dist/digest/digest-formatter.js +37 -0
- package/dist/digest/digest-formatter.js.map +1 -0
- package/dist/digest/digest-sender.d.ts +2 -0
- package/dist/digest/digest-sender.d.ts.map +1 -0
- package/dist/digest/digest-sender.js +29 -0
- package/dist/digest/digest-sender.js.map +1 -0
- package/dist/hooks/bash-classifier.d.ts +26 -0
- package/dist/hooks/bash-classifier.d.ts.map +1 -0
- package/dist/hooks/bash-classifier.js +409 -0
- package/dist/hooks/bash-classifier.js.map +1 -0
- package/dist/hooks/collector-script.d.ts +47 -0
- package/dist/hooks/collector-script.d.ts.map +1 -0
- package/dist/hooks/collector-script.js +662 -0
- package/dist/hooks/collector-script.js.map +1 -0
- package/dist/hooks/event-processor.d.ts +65 -0
- package/dist/hooks/event-processor.d.ts.map +1 -0
- package/dist/hooks/event-processor.js +342 -0
- package/dist/hooks/event-processor.js.map +1 -0
- package/dist/hooks/index.d.ts +7 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +5 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/session-resolver.d.ts +66 -0
- package/dist/hooks/session-resolver.d.ts.map +1 -0
- package/dist/hooks/session-resolver.js +196 -0
- package/dist/hooks/session-resolver.js.map +1 -0
- package/dist/hooks/tool-parsers.d.ts +19 -0
- package/dist/hooks/tool-parsers.d.ts.map +1 -0
- package/dist/hooks/tool-parsers.js +260 -0
- package/dist/hooks/tool-parsers.js.map +1 -0
- package/dist/index.d.ts +107 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1505 -0
- package/dist/index.js.map +1 -0
- package/dist/install/cli.d.ts +11 -0
- package/dist/install/cli.d.ts.map +1 -0
- package/dist/install/cli.js +365 -0
- package/dist/install/cli.js.map +1 -0
- package/dist/install/index.d.ts +4 -0
- package/dist/install/index.d.ts.map +1 -0
- package/dist/install/index.js +3 -0
- package/dist/install/index.js.map +1 -0
- package/dist/install/install-helper.d.ts +35 -0
- package/dist/install/install-helper.d.ts.map +1 -0
- package/dist/install/install-helper.js +227 -0
- package/dist/install/install-helper.js.map +1 -0
- package/dist/install/key-validator.d.ts +19 -0
- package/dist/install/key-validator.d.ts.map +1 -0
- package/dist/install/key-validator.js +122 -0
- package/dist/install/key-validator.js.map +1 -0
- package/dist/install/migrate.d.ts +12 -0
- package/dist/install/migrate.d.ts.map +1 -0
- package/dist/install/migrate.js +115 -0
- package/dist/install/migrate.js.map +1 -0
- package/dist/install/schedule.d.ts +11 -0
- package/dist/install/schedule.d.ts.map +1 -0
- package/dist/install/schedule.js +114 -0
- package/dist/install/schedule.js.map +1 -0
- package/dist/install/setup-wizard.d.ts +40 -0
- package/dist/install/setup-wizard.d.ts.map +1 -0
- package/dist/install/setup-wizard.js +489 -0
- package/dist/install/setup-wizard.js.map +1 -0
- package/dist/lib/date.d.ts +54 -0
- package/dist/lib/date.d.ts.map +1 -0
- package/dist/lib/date.js +85 -0
- package/dist/lib/date.js.map +1 -0
- package/dist/metrics/anti-patterns.d.ts +62 -0
- package/dist/metrics/anti-patterns.d.ts.map +1 -0
- package/dist/metrics/anti-patterns.js +301 -0
- package/dist/metrics/anti-patterns.js.map +1 -0
- package/dist/metrics/api-failure-tracker.d.ts +82 -0
- package/dist/metrics/api-failure-tracker.d.ts.map +1 -0
- package/dist/metrics/api-failure-tracker.js +202 -0
- package/dist/metrics/api-failure-tracker.js.map +1 -0
- package/dist/metrics/budget-tracker.d.ts +60 -0
- package/dist/metrics/budget-tracker.d.ts.map +1 -0
- package/dist/metrics/budget-tracker.js +130 -0
- package/dist/metrics/budget-tracker.js.map +1 -0
- package/dist/metrics/claudemd-tracker.d.ts +108 -0
- package/dist/metrics/claudemd-tracker.d.ts.map +1 -0
- package/dist/metrics/claudemd-tracker.js +337 -0
- package/dist/metrics/claudemd-tracker.js.map +1 -0
- package/dist/metrics/collaboration-profile.d.ts +65 -0
- package/dist/metrics/collaboration-profile.d.ts.map +1 -0
- package/dist/metrics/collaboration-profile.js +231 -0
- package/dist/metrics/collaboration-profile.js.map +1 -0
- package/dist/metrics/context-composition-tracker.d.ts +74 -0
- package/dist/metrics/context-composition-tracker.d.ts.map +1 -0
- package/dist/metrics/context-composition-tracker.js +202 -0
- package/dist/metrics/context-composition-tracker.js.map +1 -0
- package/dist/metrics/context-tracker.d.ts +78 -0
- package/dist/metrics/context-tracker.d.ts.map +1 -0
- package/dist/metrics/context-tracker.js +222 -0
- package/dist/metrics/context-tracker.js.map +1 -0
- package/dist/metrics/context-window-tracker.d.ts +18 -0
- package/dist/metrics/context-window-tracker.d.ts.map +1 -0
- package/dist/metrics/context-window-tracker.js +35 -0
- package/dist/metrics/context-window-tracker.js.map +1 -0
- package/dist/metrics/cost-forecast.d.ts +36 -0
- package/dist/metrics/cost-forecast.d.ts.map +1 -0
- package/dist/metrics/cost-forecast.js +91 -0
- package/dist/metrics/cost-forecast.js.map +1 -0
- package/dist/metrics/cost-per-outcome.d.ts +102 -0
- package/dist/metrics/cost-per-outcome.d.ts.map +1 -0
- package/dist/metrics/cost-per-outcome.js +266 -0
- package/dist/metrics/cost-per-outcome.js.map +1 -0
- package/dist/metrics/cost-tracker.d.ts +78 -0
- package/dist/metrics/cost-tracker.d.ts.map +1 -0
- package/dist/metrics/cost-tracker.js +169 -0
- package/dist/metrics/cost-tracker.js.map +1 -0
- package/dist/metrics/decision-tracker.d.ts +49 -0
- package/dist/metrics/decision-tracker.d.ts.map +1 -0
- package/dist/metrics/decision-tracker.js +161 -0
- package/dist/metrics/decision-tracker.js.map +1 -0
- package/dist/metrics/efficiency-score.d.ts +80 -0
- package/dist/metrics/efficiency-score.d.ts.map +1 -0
- package/dist/metrics/efficiency-score.js +219 -0
- package/dist/metrics/efficiency-score.js.map +1 -0
- package/dist/metrics/git-efficiency-tracker.d.ts +165 -0
- package/dist/metrics/git-efficiency-tracker.d.ts.map +1 -0
- package/dist/metrics/git-efficiency-tracker.js +1056 -0
- package/dist/metrics/git-efficiency-tracker.js.map +1 -0
- package/dist/metrics/index.d.ts +26 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/metrics/index.js +14 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/metrics/instruction-drift-tracker.d.ts +69 -0
- package/dist/metrics/instruction-drift-tracker.d.ts.map +1 -0
- package/dist/metrics/instruction-drift-tracker.js +213 -0
- package/dist/metrics/instruction-drift-tracker.js.map +1 -0
- package/dist/metrics/latency-decomposition.d.ts +50 -0
- package/dist/metrics/latency-decomposition.d.ts.map +1 -0
- package/dist/metrics/latency-decomposition.js +112 -0
- package/dist/metrics/latency-decomposition.js.map +1 -0
- package/dist/metrics/latency-tracker.d.ts +33 -0
- package/dist/metrics/latency-tracker.d.ts.map +1 -0
- package/dist/metrics/latency-tracker.js +93 -0
- package/dist/metrics/latency-tracker.js.map +1 -0
- package/dist/metrics/live-session-registry.d.ts +29 -0
- package/dist/metrics/live-session-registry.d.ts.map +1 -0
- package/dist/metrics/live-session-registry.js +103 -0
- package/dist/metrics/live-session-registry.js.map +1 -0
- package/dist/metrics/model-usage-tracker.d.ts +21 -0
- package/dist/metrics/model-usage-tracker.d.ts.map +1 -0
- package/dist/metrics/model-usage-tracker.js +53 -0
- package/dist/metrics/model-usage-tracker.js.map +1 -0
- package/dist/metrics/percentile.d.ts +5 -0
- package/dist/metrics/percentile.d.ts.map +1 -0
- package/dist/metrics/percentile.js +10 -0
- package/dist/metrics/percentile.js.map +1 -0
- package/dist/metrics/personal-coach.d.ts +47 -0
- package/dist/metrics/personal-coach.d.ts.map +1 -0
- package/dist/metrics/personal-coach.js +241 -0
- package/dist/metrics/personal-coach.js.map +1 -0
- package/dist/metrics/prompt-feedback.d.ts +75 -0
- package/dist/metrics/prompt-feedback.d.ts.map +1 -0
- package/dist/metrics/prompt-feedback.js +286 -0
- package/dist/metrics/prompt-feedback.js.map +1 -0
- package/dist/metrics/proxy-metrics.d.ts +54 -0
- package/dist/metrics/proxy-metrics.d.ts.map +1 -0
- package/dist/metrics/proxy-metrics.js +228 -0
- package/dist/metrics/proxy-metrics.js.map +1 -0
- package/dist/metrics/quality-proxy-tracker.d.ts +51 -0
- package/dist/metrics/quality-proxy-tracker.d.ts.map +1 -0
- package/dist/metrics/quality-proxy-tracker.js +162 -0
- package/dist/metrics/quality-proxy-tracker.js.map +1 -0
- package/dist/metrics/recommendation-engine.d.ts +72 -0
- package/dist/metrics/recommendation-engine.d.ts.map +1 -0
- package/dist/metrics/recommendation-engine.js +207 -0
- package/dist/metrics/recommendation-engine.js.map +1 -0
- package/dist/metrics/retry-detector.d.ts +43 -0
- package/dist/metrics/retry-detector.d.ts.map +1 -0
- package/dist/metrics/retry-detector.js +179 -0
- package/dist/metrics/retry-detector.js.map +1 -0
- package/dist/metrics/session-tracker.d.ts +75 -0
- package/dist/metrics/session-tracker.d.ts.map +1 -0
- package/dist/metrics/session-tracker.js +249 -0
- package/dist/metrics/session-tracker.js.map +1 -0
- package/dist/metrics/task-completion-tracker.d.ts +15 -0
- package/dist/metrics/task-completion-tracker.d.ts.map +1 -0
- package/dist/metrics/task-completion-tracker.js +27 -0
- package/dist/metrics/task-completion-tracker.js.map +1 -0
- package/dist/metrics/task-detector.d.ts +84 -0
- package/dist/metrics/task-detector.d.ts.map +1 -0
- package/dist/metrics/task-detector.js +302 -0
- package/dist/metrics/task-detector.js.map +1 -0
- package/dist/metrics/tool-selection-scorer.d.ts +39 -0
- package/dist/metrics/tool-selection-scorer.d.ts.map +1 -0
- package/dist/metrics/tool-selection-scorer.js +193 -0
- package/dist/metrics/tool-selection-scorer.js.map +1 -0
- package/dist/metrics/trend-analyzer.d.ts +92 -0
- package/dist/metrics/trend-analyzer.d.ts.map +1 -0
- package/dist/metrics/trend-analyzer.js +293 -0
- package/dist/metrics/trend-analyzer.js.map +1 -0
- package/dist/metrics/turn-cost-attributor.d.ts +41 -0
- package/dist/metrics/turn-cost-attributor.d.ts.map +1 -0
- package/dist/metrics/turn-cost-attributor.js +118 -0
- package/dist/metrics/turn-cost-attributor.js.map +1 -0
- package/dist/metrics/turn-tracker.d.ts +49 -0
- package/dist/metrics/turn-tracker.d.ts.map +1 -0
- package/dist/metrics/turn-tracker.js +192 -0
- package/dist/metrics/turn-tracker.js.map +1 -0
- package/dist/platforms/amazon-q-adapter.d.ts +10 -0
- package/dist/platforms/amazon-q-adapter.d.ts.map +1 -0
- package/dist/platforms/amazon-q-adapter.js +75 -0
- package/dist/platforms/amazon-q-adapter.js.map +1 -0
- package/dist/platforms/claude-code-adapter.d.ts +10 -0
- package/dist/platforms/claude-code-adapter.d.ts.map +1 -0
- package/dist/platforms/claude-code-adapter.js +48 -0
- package/dist/platforms/claude-code-adapter.js.map +1 -0
- package/dist/platforms/continue-adapter.d.ts +10 -0
- package/dist/platforms/continue-adapter.d.ts.map +1 -0
- package/dist/platforms/continue-adapter.js +73 -0
- package/dist/platforms/continue-adapter.js.map +1 -0
- package/dist/platforms/copilot-adapter.d.ts +37 -0
- package/dist/platforms/copilot-adapter.d.ts.map +1 -0
- package/dist/platforms/copilot-adapter.js +66 -0
- package/dist/platforms/copilot-adapter.js.map +1 -0
- package/dist/platforms/cursor-adapter.d.ts +10 -0
- package/dist/platforms/cursor-adapter.d.ts.map +1 -0
- package/dist/platforms/cursor-adapter.js +60 -0
- package/dist/platforms/cursor-adapter.js.map +1 -0
- package/dist/platforms/generic-mcp-adapter.d.ts +113 -0
- package/dist/platforms/generic-mcp-adapter.d.ts.map +1 -0
- package/dist/platforms/generic-mcp-adapter.js +139 -0
- package/dist/platforms/generic-mcp-adapter.js.map +1 -0
- package/dist/platforms/index.d.ts +15 -0
- package/dist/platforms/index.d.ts.map +1 -0
- package/dist/platforms/index.js +12 -0
- package/dist/platforms/index.js.map +1 -0
- package/dist/platforms/platform-registry.d.ts +11 -0
- package/dist/platforms/platform-registry.d.ts.map +1 -0
- package/dist/platforms/platform-registry.js +54 -0
- package/dist/platforms/platform-registry.js.map +1 -0
- package/dist/platforms/types.d.ts +36 -0
- package/dist/platforms/types.d.ts.map +1 -0
- package/dist/platforms/types.js +2 -0
- package/dist/platforms/types.js.map +1 -0
- package/dist/platforms/windsurf-adapter.d.ts +10 -0
- package/dist/platforms/windsurf-adapter.d.ts.map +1 -0
- package/dist/platforms/windsurf-adapter.js +63 -0
- package/dist/platforms/windsurf-adapter.js.map +1 -0
- package/dist/platforms/zed-adapter.d.ts +10 -0
- package/dist/platforms/zed-adapter.d.ts.map +1 -0
- package/dist/platforms/zed-adapter.js +72 -0
- package/dist/platforms/zed-adapter.js.map +1 -0
- package/dist/proxy/index.d.ts +7 -0
- package/dist/proxy/index.d.ts.map +1 -0
- package/dist/proxy/index.js +5 -0
- package/dist/proxy/index.js.map +1 -0
- package/dist/proxy/otlp-receiver.d.ts +28 -0
- package/dist/proxy/otlp-receiver.d.ts.map +1 -0
- package/dist/proxy/otlp-receiver.js +319 -0
- package/dist/proxy/otlp-receiver.js.map +1 -0
- package/dist/proxy/proxy-manager.d.ts +47 -0
- package/dist/proxy/proxy-manager.d.ts.map +1 -0
- package/dist/proxy/proxy-manager.js +338 -0
- package/dist/proxy/proxy-manager.js.map +1 -0
- package/dist/proxy/types.d.ts +72 -0
- package/dist/proxy/types.d.ts.map +1 -0
- package/dist/proxy/types.js +33 -0
- package/dist/proxy/types.js.map +1 -0
- package/dist/proxy/upstream-http.d.ts +26 -0
- package/dist/proxy/upstream-http.d.ts.map +1 -0
- package/dist/proxy/upstream-http.js +209 -0
- package/dist/proxy/upstream-http.js.map +1 -0
- package/dist/proxy/upstream-stdio.d.ts +25 -0
- package/dist/proxy/upstream-stdio.d.ts.map +1 -0
- package/dist/proxy/upstream-stdio.js +256 -0
- package/dist/proxy/upstream-stdio.js.map +1 -0
- package/dist/security/audit-trail.d.ts +74 -0
- package/dist/security/audit-trail.d.ts.map +1 -0
- package/dist/security/audit-trail.js +338 -0
- package/dist/security/audit-trail.js.map +1 -0
- package/dist/security/index.d.ts +5 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +4 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/ssrf.d.ts +2 -0
- package/dist/security/ssrf.d.ts.map +1 -0
- package/dist/security/ssrf.js +126 -0
- package/dist/security/ssrf.js.map +1 -0
- package/dist/server.d.ts +14 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +117 -0
- package/dist/server.js.map +1 -0
- package/dist/shared/__test-utils__/log-output.d.ts +49 -0
- package/dist/shared/__test-utils__/log-output.d.ts.map +1 -0
- package/dist/shared/__test-utils__/log-output.js +38 -0
- package/dist/shared/__test-utils__/log-output.js.map +1 -0
- package/dist/shared/config.d.ts +56 -0
- package/dist/shared/config.d.ts.map +1 -0
- package/dist/shared/config.js +290 -0
- package/dist/shared/config.js.map +1 -0
- package/dist/shared/errors.d.ts +139 -0
- package/dist/shared/errors.d.ts.map +1 -0
- package/dist/shared/errors.js +406 -0
- package/dist/shared/errors.js.map +1 -0
- package/dist/shared/events/factory.d.ts +143 -0
- package/dist/shared/events/factory.d.ts.map +1 -0
- package/dist/shared/events/factory.js +351 -0
- package/dist/shared/events/factory.js.map +1 -0
- package/dist/shared/events/index.d.ts +6 -0
- package/dist/shared/events/index.d.ts.map +1 -0
- package/dist/shared/events/index.js +3 -0
- package/dist/shared/events/index.js.map +1 -0
- package/dist/shared/events/serialize.d.ts +87 -0
- package/dist/shared/events/serialize.d.ts.map +1 -0
- package/dist/shared/events/serialize.js +510 -0
- package/dist/shared/events/serialize.js.map +1 -0
- package/dist/shared/events/types.d.ts +139 -0
- package/dist/shared/events/types.d.ts.map +1 -0
- package/dist/shared/events/types.js +2 -0
- package/dist/shared/events/types.js.map +1 -0
- package/dist/shared/harvest/event-buffer.d.ts +59 -0
- package/dist/shared/harvest/event-buffer.d.ts.map +1 -0
- package/dist/shared/harvest/event-buffer.js +100 -0
- package/dist/shared/harvest/event-buffer.js.map +1 -0
- package/dist/shared/harvest/harvest-scheduler.d.ts +200 -0
- package/dist/shared/harvest/harvest-scheduler.d.ts.map +1 -0
- package/dist/shared/harvest/harvest-scheduler.js +647 -0
- package/dist/shared/harvest/harvest-scheduler.js.map +1 -0
- package/dist/shared/harvest/index.d.ts +7 -0
- package/dist/shared/harvest/index.d.ts.map +1 -0
- package/dist/shared/harvest/index.js +4 -0
- package/dist/shared/harvest/index.js.map +1 -0
- package/dist/shared/harvest/metric-aggregator.d.ts +115 -0
- package/dist/shared/harvest/metric-aggregator.d.ts.map +1 -0
- package/dist/shared/harvest/metric-aggregator.js +247 -0
- package/dist/shared/harvest/metric-aggregator.js.map +1 -0
- package/dist/shared/index.d.ts +22 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +13 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/logger.d.ts +57 -0
- package/dist/shared/logger.d.ts.map +1 -0
- package/dist/shared/logger.js +166 -0
- package/dist/shared/logger.js.map +1 -0
- package/dist/shared/pricing-data.d.ts +4 -0
- package/dist/shared/pricing-data.d.ts.map +1 -0
- package/dist/shared/pricing-data.js +473 -0
- package/dist/shared/pricing-data.js.map +1 -0
- package/dist/shared/pricing.d.ts +148 -0
- package/dist/shared/pricing.d.ts.map +1 -0
- package/dist/shared/pricing.js +528 -0
- package/dist/shared/pricing.js.map +1 -0
- package/dist/shared/redact.d.ts +33 -0
- package/dist/shared/redact.d.ts.map +1 -0
- package/dist/shared/redact.js +110 -0
- package/dist/shared/redact.js.map +1 -0
- package/dist/shared/timing.d.ts +96 -0
- package/dist/shared/timing.d.ts.map +1 -0
- package/dist/shared/timing.js +173 -0
- package/dist/shared/timing.js.map +1 -0
- package/dist/shared/tokens.d.ts +145 -0
- package/dist/shared/tokens.d.ts.map +1 -0
- package/dist/shared/tokens.js +492 -0
- package/dist/shared/tokens.js.map +1 -0
- package/dist/shared/transport/events-api.d.ts +14 -0
- package/dist/shared/transport/events-api.d.ts.map +1 -0
- package/dist/shared/transport/events-api.js +29 -0
- package/dist/shared/transport/events-api.js.map +1 -0
- package/dist/shared/transport/http-client.d.ts +49 -0
- package/dist/shared/transport/http-client.d.ts.map +1 -0
- package/dist/shared/transport/http-client.js +381 -0
- package/dist/shared/transport/http-client.js.map +1 -0
- package/dist/shared/transport/index.d.ts +10 -0
- package/dist/shared/transport/index.d.ts.map +1 -0
- package/dist/shared/transport/index.js +6 -0
- package/dist/shared/transport/index.js.map +1 -0
- package/dist/shared/transport/logs-api.d.ts +29 -0
- package/dist/shared/transport/logs-api.d.ts.map +1 -0
- package/dist/shared/transport/logs-api.js +40 -0
- package/dist/shared/transport/logs-api.js.map +1 -0
- package/dist/shared/transport/metric-api.d.ts +9 -0
- package/dist/shared/transport/metric-api.d.ts.map +1 -0
- package/dist/shared/transport/metric-api.js +39 -0
- package/dist/shared/transport/metric-api.js.map +1 -0
- package/dist/shared/transport/otlp-event-bridge.d.ts +22 -0
- package/dist/shared/transport/otlp-event-bridge.d.ts.map +1 -0
- package/dist/shared/transport/otlp-event-bridge.js +50 -0
- package/dist/shared/transport/otlp-event-bridge.js.map +1 -0
- package/dist/shared/transport/otlp-shared.d.ts +14 -0
- package/dist/shared/transport/otlp-shared.d.ts.map +1 -0
- package/dist/shared/transport/otlp-shared.js +49 -0
- package/dist/shared/transport/otlp-shared.js.map +1 -0
- package/dist/shared/transport/otlp-transport.d.ts +58 -0
- package/dist/shared/transport/otlp-transport.d.ts.map +1 -0
- package/dist/shared/transport/otlp-transport.js +236 -0
- package/dist/shared/transport/otlp-transport.js.map +1 -0
- package/dist/shared/transport/types.d.ts +129 -0
- package/dist/shared/transport/types.d.ts.map +1 -0
- package/dist/shared/transport/types.js +2 -0
- package/dist/shared/transport/types.js.map +1 -0
- package/dist/shared/version.d.ts +2 -0
- package/dist/shared/version.d.ts.map +1 -0
- package/dist/shared/version.js +2 -0
- package/dist/shared/version.js.map +1 -0
- package/dist/storage/index.d.ts +7 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +4 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/local-store.d.ts +153 -0
- package/dist/storage/local-store.d.ts.map +1 -0
- package/dist/storage/local-store.js +719 -0
- package/dist/storage/local-store.js.map +1 -0
- package/dist/storage/retention.d.ts +2 -0
- package/dist/storage/retention.d.ts.map +1 -0
- package/dist/storage/retention.js +53 -0
- package/dist/storage/retention.js.map +1 -0
- package/dist/storage/session-store.d.ts +97 -0
- package/dist/storage/session-store.d.ts.map +1 -0
- package/dist/storage/session-store.js +391 -0
- package/dist/storage/session-store.js.map +1 -0
- package/dist/storage/types.d.ts +64 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +2 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/storage/weekly-summary.d.ts +61 -0
- package/dist/storage/weekly-summary.d.ts.map +1 -0
- package/dist/storage/weekly-summary.js +243 -0
- package/dist/storage/weekly-summary.js.map +1 -0
- package/dist/tools/analytics-tools.d.ts +101 -0
- package/dist/tools/analytics-tools.d.ts.map +1 -0
- package/dist/tools/analytics-tools.js +71 -0
- package/dist/tools/analytics-tools.js.map +1 -0
- package/dist/tools/cost-tools.d.ts +121 -0
- package/dist/tools/cost-tools.d.ts.map +1 -0
- package/dist/tools/cost-tools.js +174 -0
- package/dist/tools/cost-tools.js.map +1 -0
- package/dist/tools/cross-session-tools.d.ts +376 -0
- package/dist/tools/cross-session-tools.d.ts.map +1 -0
- package/dist/tools/cross-session-tools.js +820 -0
- package/dist/tools/cross-session-tools.js.map +1 -0
- package/dist/tools/extended-analytics-tools.d.ts +164 -0
- package/dist/tools/extended-analytics-tools.d.ts.map +1 -0
- package/dist/tools/extended-analytics-tools.js +121 -0
- package/dist/tools/extended-analytics-tools.js.map +1 -0
- package/dist/tools/index.d.ts +7 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/session-stats.d.ts +162 -0
- package/dist/tools/session-stats.d.ts.map +1 -0
- package/dist/tools/session-stats.js +1054 -0
- package/dist/tools/session-stats.js.map +1 -0
- package/dist/tools/workflow-tools.d.ts +126 -0
- package/dist/tools/workflow-tools.d.ts.map +1 -0
- package/dist/tools/workflow-tools.js +274 -0
- package/dist/tools/workflow-tools.js.map +1 -0
- package/dist/tracing/mcp-tracer.d.ts +4 -0
- package/dist/tracing/mcp-tracer.d.ts.map +1 -0
- package/dist/tracing/mcp-tracer.js +14 -0
- package/dist/tracing/mcp-tracer.js.map +1 -0
- package/dist/tracing/session-span.d.ts +14 -0
- package/dist/tracing/session-span.d.ts.map +1 -0
- package/dist/tracing/session-span.js +53 -0
- package/dist/tracing/session-span.js.map +1 -0
- package/dist/tracing/task-span-tracker.d.ts +11 -0
- package/dist/tracing/task-span-tracker.d.ts.map +1 -0
- package/dist/tracing/task-span-tracker.js +59 -0
- package/dist/tracing/task-span-tracker.js.map +1 -0
- package/dist/tracing/tool-call-span.d.ts +4 -0
- package/dist/tracing/tool-call-span.d.ts.map +1 -0
- package/dist/tracing/tool-call-span.js +60 -0
- package/dist/tracing/tool-call-span.js.map +1 -0
- package/dist/transport/index.d.ts +3 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +2 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/log-ingest.d.ts +42 -0
- package/dist/transport/log-ingest.d.ts.map +1 -0
- package/dist/transport/log-ingest.js +151 -0
- package/dist/transport/log-ingest.js.map +1 -0
- package/dist/transport/nr-ingest.d.ts +171 -0
- package/dist/transport/nr-ingest.d.ts.map +1 -0
- package/dist/transport/nr-ingest.js +659 -0
- package/dist/transport/nr-ingest.js.map +1 -0
- package/dist/types.d.ts +45 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/web/assets/index-BrL281N-.css +2 -0
- package/dist/web/assets/index-CcaYZzXm.js +42 -0
- package/dist/web/favicon.svg +15 -0
- package/dist/web/index.html +15 -0
- package/examples/local-alert-rules.json +106 -0
- package/package.json +125 -1
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
const CURSOR_TOOL_MAP = {
|
|
2
|
+
edit_file: 'Edit',
|
|
3
|
+
read_file: 'Read',
|
|
4
|
+
run_terminal_command: 'Bash',
|
|
5
|
+
search: 'Grep',
|
|
6
|
+
list_directory: 'Glob',
|
|
7
|
+
file_search: 'Glob',
|
|
8
|
+
grep_search: 'Grep',
|
|
9
|
+
codebase_search: 'Grep',
|
|
10
|
+
delete_file: 'Delete',
|
|
11
|
+
create_file: 'Write',
|
|
12
|
+
};
|
|
13
|
+
export class CursorAdapter {
|
|
14
|
+
platformName = 'cursor';
|
|
15
|
+
async initialize(_config) {
|
|
16
|
+
// Cursor uses MCP natively — proxy captures MCP tool calls automatically.
|
|
17
|
+
// Built-in tool calls arrive via file watcher or extension API events.
|
|
18
|
+
}
|
|
19
|
+
normalizeToolCall(raw) {
|
|
20
|
+
const event = raw;
|
|
21
|
+
const platformToolName = event.tool ?? 'unknown';
|
|
22
|
+
const toolName = CURSOR_TOOL_MAP[platformToolName] ?? 'Unknown';
|
|
23
|
+
return {
|
|
24
|
+
toolName,
|
|
25
|
+
platformToolName,
|
|
26
|
+
platform: this.platformName,
|
|
27
|
+
timestamp: event.timestamp ?? Date.now(),
|
|
28
|
+
durationMs: event.durationMs ?? null,
|
|
29
|
+
success: event.success ?? true,
|
|
30
|
+
...(event.error !== undefined && { error: event.error }),
|
|
31
|
+
...(event.inputSizeBytes !== undefined && { inputSizeBytes: event.inputSizeBytes }),
|
|
32
|
+
...(event.outputSizeBytes !== undefined && { outputSizeBytes: event.outputSizeBytes }),
|
|
33
|
+
...(event.filePath !== undefined && { filePath: event.filePath }),
|
|
34
|
+
...(event.command !== undefined && { command: event.command }),
|
|
35
|
+
...(event.sessionId !== undefined && { sessionId: event.sessionId }),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
getSessionMetadata() {
|
|
39
|
+
return {
|
|
40
|
+
platform: this.platformName,
|
|
41
|
+
...(process.env.CURSOR_VERSION && { ideVersion: process.env.CURSOR_VERSION }),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
getHookInstallInstructions() {
|
|
45
|
+
return [
|
|
46
|
+
'Cursor IDE Setup:',
|
|
47
|
+
'1. Open Cursor Settings > MCP',
|
|
48
|
+
'2. Add a new MCP server with command: npx preflight --stdio',
|
|
49
|
+
'3. Set the environment variables: NEW_RELIC_LICENSE_KEY, NEW_RELIC_ACCOUNT_ID',
|
|
50
|
+
'4. MCP tool calls are captured automatically via the proxy',
|
|
51
|
+
'5. Built-in tool calls (file edits, terminal) require the file watcher or Cursor extension',
|
|
52
|
+
].join('\n');
|
|
53
|
+
}
|
|
54
|
+
isSupported() {
|
|
55
|
+
return (process.env.CURSOR_SESSION_ID !== undefined ||
|
|
56
|
+
process.env.CURSOR_TRACE_ID !== undefined ||
|
|
57
|
+
process.env.MCP_CLIENT === 'cursor');
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=cursor-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor-adapter.js","sourceRoot":"","sources":["../../src/platforms/cursor-adapter.ts"],"names":[],"mappings":"AAOA,MAAM,eAAe,GAA2B;IAC9C,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,MAAM;IACjB,oBAAoB,EAAE,MAAM;IAC5B,MAAM,EAAE,MAAM;IACd,cAAc,EAAE,MAAM;IACtB,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,MAAM;IACnB,eAAe,EAAE,MAAM;IACvB,WAAW,EAAE,QAAQ;IACrB,WAAW,EAAE,OAAO;CACrB,CAAC;AAgBF,MAAM,OAAO,aAAa;IACf,YAAY,GAAG,QAAQ,CAAC;IAEjC,KAAK,CAAC,UAAU,CAAC,OAAuB;QACtC,0EAA0E;QAC1E,uEAAuE;IACzE,CAAC;IAED,iBAAiB,CAAC,GAAY;QAC5B,MAAM,KAAK,GAAG,GAA0B,CAAC;QACzC,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC;QACjD,MAAM,QAAQ,GAAG,eAAe,CAAC,gBAAgB,CAAC,IAAI,SAAS,CAAC;QAEhE,OAAO;YACL,QAAQ;YACR,gBAAgB;YAChB,QAAQ,EAAE,IAAI,CAAC,YAAY;YAC3B,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE;YACxC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;YACpC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;YAC9B,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;YACxD,GAAG,CAAC,KAAK,CAAC,cAAc,KAAK,SAAS,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC;YACnF,GAAG,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC;YACtF,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjE,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YAC9D,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;SACrE,CAAC;IACJ,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,YAAY;YAC3B,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;SAC9E,CAAC;IACJ,CAAC;IAED,0BAA0B;QACxB,OAAO;YACL,mBAAmB;YACnB,+BAA+B;YAC/B,6DAA6D;YAC7D,+EAA+E;YAC/E,4DAA4D;YAC5D,4FAA4F;SAC7F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,WAAW;QACT,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,SAAS;YAC3C,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,SAAS;YACzC,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,QAAQ,CACpC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import type { NormalizedToolCall, PlatformAdapter, PlatformConfig, PlatformSessionMetadata } from './types.js';
|
|
2
|
+
export interface ReportToolCallInput {
|
|
3
|
+
readonly tool: string;
|
|
4
|
+
readonly input?: Record<string, unknown>;
|
|
5
|
+
readonly input_size_bytes?: number;
|
|
6
|
+
readonly output_size_bytes?: number;
|
|
7
|
+
readonly success: boolean;
|
|
8
|
+
readonly duration_ms?: number;
|
|
9
|
+
readonly error?: string;
|
|
10
|
+
readonly timestamp?: number;
|
|
11
|
+
}
|
|
12
|
+
export interface ReportSessionStartInput {
|
|
13
|
+
readonly platform: string;
|
|
14
|
+
readonly model?: string;
|
|
15
|
+
readonly developer?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface ReportSessionEndInput {
|
|
18
|
+
readonly summary?: string;
|
|
19
|
+
}
|
|
20
|
+
export declare const REPORT_TOOL_CALL_TOOL: {
|
|
21
|
+
readonly name: "nr_observe_report_tool_call";
|
|
22
|
+
readonly description: string;
|
|
23
|
+
readonly inputSchema: {
|
|
24
|
+
readonly type: "object";
|
|
25
|
+
readonly properties: {
|
|
26
|
+
readonly tool: {
|
|
27
|
+
readonly type: "string";
|
|
28
|
+
readonly description: "Tool name (e.g., \"Read\", \"Edit\", \"Bash\")";
|
|
29
|
+
};
|
|
30
|
+
readonly input: {
|
|
31
|
+
readonly type: "object";
|
|
32
|
+
readonly description: "Tool input parameters";
|
|
33
|
+
};
|
|
34
|
+
readonly input_size_bytes: {
|
|
35
|
+
readonly type: "number";
|
|
36
|
+
readonly description: "Size of tool input in bytes";
|
|
37
|
+
};
|
|
38
|
+
readonly output_size_bytes: {
|
|
39
|
+
readonly type: "number";
|
|
40
|
+
readonly description: "Size of tool output in bytes";
|
|
41
|
+
};
|
|
42
|
+
readonly success: {
|
|
43
|
+
readonly type: "boolean";
|
|
44
|
+
readonly description: "Whether the tool call succeeded";
|
|
45
|
+
};
|
|
46
|
+
readonly duration_ms: {
|
|
47
|
+
readonly type: "number";
|
|
48
|
+
readonly description: "Duration of the tool call in milliseconds";
|
|
49
|
+
};
|
|
50
|
+
readonly error: {
|
|
51
|
+
readonly type: "string";
|
|
52
|
+
readonly description: "Error message if the tool call failed";
|
|
53
|
+
};
|
|
54
|
+
readonly timestamp: {
|
|
55
|
+
readonly type: "number";
|
|
56
|
+
readonly description: "Epoch milliseconds when the call occurred (defaults to now)";
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
readonly required: readonly ["tool", "success"];
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
export declare const REPORT_SESSION_START_TOOL: {
|
|
63
|
+
readonly name: "nr_observe_report_session_start";
|
|
64
|
+
readonly description: string;
|
|
65
|
+
readonly inputSchema: {
|
|
66
|
+
readonly type: "object";
|
|
67
|
+
readonly properties: {
|
|
68
|
+
readonly platform: {
|
|
69
|
+
readonly type: "string";
|
|
70
|
+
readonly description: "Platform name (e.g., \"my-ai-assistant\")";
|
|
71
|
+
};
|
|
72
|
+
readonly model: {
|
|
73
|
+
readonly type: "string";
|
|
74
|
+
readonly description: "AI model being used";
|
|
75
|
+
};
|
|
76
|
+
readonly developer: {
|
|
77
|
+
readonly type: "string";
|
|
78
|
+
readonly description: "Developer name or identifier";
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
readonly required: readonly ["platform"];
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
export declare const REPORT_SESSION_END_TOOL: {
|
|
85
|
+
readonly name: "nr_observe_report_session_end";
|
|
86
|
+
readonly description: string;
|
|
87
|
+
readonly inputSchema: {
|
|
88
|
+
readonly type: "object";
|
|
89
|
+
readonly properties: {
|
|
90
|
+
readonly summary: {
|
|
91
|
+
readonly type: "string";
|
|
92
|
+
readonly description: "Brief summary of what was accomplished";
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
export declare function validateReportToolCallInput(raw: unknown): ReportToolCallInput;
|
|
98
|
+
export declare class GenericMcpAdapter implements PlatformAdapter {
|
|
99
|
+
readonly platformName = "generic-mcp";
|
|
100
|
+
private sessionMetadata;
|
|
101
|
+
initialize(_config: PlatformConfig): Promise<void>;
|
|
102
|
+
normalizeToolCall(raw: unknown): NormalizedToolCall;
|
|
103
|
+
handleSessionStart(input: ReportSessionStartInput): void;
|
|
104
|
+
getSessionMetadata(): PlatformSessionMetadata;
|
|
105
|
+
getHookInstallInstructions(): string;
|
|
106
|
+
isSupported(): boolean;
|
|
107
|
+
getToolDefinitions(): readonly [
|
|
108
|
+
typeof REPORT_TOOL_CALL_TOOL,
|
|
109
|
+
typeof REPORT_SESSION_START_TOOL,
|
|
110
|
+
typeof REPORT_SESSION_END_TOOL
|
|
111
|
+
];
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=generic-mcp-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic-mcp-adapter.d.ts","sourceRoot":"","sources":["../../src/platforms/generic-mcp-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBxB,CAAC;AAEX,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;CAc5B,CAAC;AAEX,eAAO,MAAM,uBAAuB;;;;;;;;;;;;CAW1B,CAAC;AAEX,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,CAiC7E;AAED,qBAAa,iBAAkB,YAAW,eAAe;IACvD,QAAQ,CAAC,YAAY,iBAAiB;IAEtC,OAAO,CAAC,eAAe,CAAwD;IAEzE,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB;IAwBnD,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,IAAI;IAQxD,kBAAkB,IAAI,uBAAuB;IAI7C,0BAA0B,IAAI,MAAM;IAYpC,WAAW,IAAI,OAAO;IAItB,kBAAkB,IAAI,SAAS;QAC7B,OAAO,qBAAqB;QAC5B,OAAO,yBAAyB;QAChC,OAAO,uBAAuB;KAC/B;CAGF"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
export const REPORT_TOOL_CALL_TOOL = {
|
|
2
|
+
name: 'nr_observe_report_tool_call',
|
|
3
|
+
description: 'Report a tool call event for observability. Use this to report non-MCP tool calls ' +
|
|
4
|
+
'(file reads, writes, terminal commands) that your AI assistant performs. ' +
|
|
5
|
+
'MCP tool calls are captured automatically via the proxy.',
|
|
6
|
+
inputSchema: {
|
|
7
|
+
type: 'object',
|
|
8
|
+
properties: {
|
|
9
|
+
tool: { type: 'string', description: 'Tool name (e.g., "Read", "Edit", "Bash")' },
|
|
10
|
+
input: { type: 'object', description: 'Tool input parameters' },
|
|
11
|
+
input_size_bytes: { type: 'number', description: 'Size of tool input in bytes' },
|
|
12
|
+
output_size_bytes: { type: 'number', description: 'Size of tool output in bytes' },
|
|
13
|
+
success: { type: 'boolean', description: 'Whether the tool call succeeded' },
|
|
14
|
+
duration_ms: { type: 'number', description: 'Duration of the tool call in milliseconds' },
|
|
15
|
+
error: { type: 'string', description: 'Error message if the tool call failed' },
|
|
16
|
+
timestamp: {
|
|
17
|
+
type: 'number',
|
|
18
|
+
description: 'Epoch milliseconds when the call occurred (defaults to now)',
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
required: ['tool', 'success'],
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
export const REPORT_SESSION_START_TOOL = {
|
|
25
|
+
name: 'nr_observe_report_session_start',
|
|
26
|
+
description: 'Report that a new AI coding session has begun. Call this at the start of a session ' +
|
|
27
|
+
'to initialize session metadata for observability.',
|
|
28
|
+
inputSchema: {
|
|
29
|
+
type: 'object',
|
|
30
|
+
properties: {
|
|
31
|
+
platform: { type: 'string', description: 'Platform name (e.g., "my-ai-assistant")' },
|
|
32
|
+
model: { type: 'string', description: 'AI model being used' },
|
|
33
|
+
developer: { type: 'string', description: 'Developer name or identifier' },
|
|
34
|
+
},
|
|
35
|
+
required: ['platform'],
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
export const REPORT_SESSION_END_TOOL = {
|
|
39
|
+
name: 'nr_observe_report_session_end',
|
|
40
|
+
description: 'Report that the current AI coding session has ended. Call this at the end of a session ' +
|
|
41
|
+
'to finalize session metrics.',
|
|
42
|
+
inputSchema: {
|
|
43
|
+
type: 'object',
|
|
44
|
+
properties: {
|
|
45
|
+
summary: { type: 'string', description: 'Brief summary of what was accomplished' },
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
export function validateReportToolCallInput(raw) {
|
|
50
|
+
if (typeof raw !== 'object' || raw === null) {
|
|
51
|
+
throw new Error('Input must be an object');
|
|
52
|
+
}
|
|
53
|
+
const obj = raw;
|
|
54
|
+
if (typeof obj.tool !== 'string' || obj.tool.length === 0) {
|
|
55
|
+
throw new Error('Missing required field: tool');
|
|
56
|
+
}
|
|
57
|
+
if (typeof obj.success !== 'boolean') {
|
|
58
|
+
throw new Error('Missing required field: success');
|
|
59
|
+
}
|
|
60
|
+
// Validate optional numeric fields
|
|
61
|
+
if (obj.input_size_bytes !== undefined && typeof obj.input_size_bytes !== 'number') {
|
|
62
|
+
throw new Error('Field input_size_bytes must be a number when present');
|
|
63
|
+
}
|
|
64
|
+
if (obj.output_size_bytes !== undefined && typeof obj.output_size_bytes !== 'number') {
|
|
65
|
+
throw new Error('Field output_size_bytes must be a number when present');
|
|
66
|
+
}
|
|
67
|
+
if (obj.duration_ms !== undefined && typeof obj.duration_ms !== 'number') {
|
|
68
|
+
throw new Error('Field duration_ms must be a number when present');
|
|
69
|
+
}
|
|
70
|
+
if (obj.timestamp !== undefined && typeof obj.timestamp !== 'number') {
|
|
71
|
+
throw new Error('Field timestamp must be a number when present');
|
|
72
|
+
}
|
|
73
|
+
// Validate optional string fields
|
|
74
|
+
if (obj.error !== undefined && typeof obj.error !== 'string') {
|
|
75
|
+
throw new Error('Field error must be a string when present');
|
|
76
|
+
}
|
|
77
|
+
// Validate optional input object
|
|
78
|
+
if (obj.input !== undefined && (typeof obj.input !== 'object' || obj.input === null)) {
|
|
79
|
+
throw new Error('Field input must be an object when present');
|
|
80
|
+
}
|
|
81
|
+
return obj;
|
|
82
|
+
}
|
|
83
|
+
export class GenericMcpAdapter {
|
|
84
|
+
platformName = 'generic-mcp';
|
|
85
|
+
sessionMetadata = { platform: 'generic-mcp' };
|
|
86
|
+
async initialize(_config) {
|
|
87
|
+
// Generic adapter requires no initialization — it accepts events via MCP tools.
|
|
88
|
+
}
|
|
89
|
+
normalizeToolCall(raw) {
|
|
90
|
+
const input = validateReportToolCallInput(raw);
|
|
91
|
+
return {
|
|
92
|
+
toolName: input.tool,
|
|
93
|
+
platformToolName: input.tool,
|
|
94
|
+
platform: this.sessionMetadata.platform,
|
|
95
|
+
timestamp: input.timestamp ?? Date.now(),
|
|
96
|
+
durationMs: input.duration_ms ?? null,
|
|
97
|
+
success: input.success,
|
|
98
|
+
...(input.error !== undefined && { error: input.error }),
|
|
99
|
+
...(input.input_size_bytes !== undefined && { inputSizeBytes: input.input_size_bytes }),
|
|
100
|
+
...(input.output_size_bytes !== undefined && { outputSizeBytes: input.output_size_bytes }),
|
|
101
|
+
...(input.input !== undefined &&
|
|
102
|
+
typeof input.input === 'object' &&
|
|
103
|
+
'file_path' in input.input &&
|
|
104
|
+
typeof input.input.file_path === 'string' && { filePath: input.input.file_path }),
|
|
105
|
+
...(input.input !== undefined &&
|
|
106
|
+
typeof input.input === 'object' &&
|
|
107
|
+
'command' in input.input &&
|
|
108
|
+
typeof input.input.command === 'string' && { command: input.input.command }),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
handleSessionStart(input) {
|
|
112
|
+
this.sessionMetadata = {
|
|
113
|
+
platform: input.platform || 'generic-mcp',
|
|
114
|
+
...(input.model !== undefined && { model: input.model }),
|
|
115
|
+
...(input.developer !== undefined && { developer: input.developer }),
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
getSessionMetadata() {
|
|
119
|
+
return { ...this.sessionMetadata };
|
|
120
|
+
}
|
|
121
|
+
getHookInstallInstructions() {
|
|
122
|
+
return [
|
|
123
|
+
'Generic MCP Client Setup:',
|
|
124
|
+
"1. Add this MCP server to your AI assistant's MCP configuration",
|
|
125
|
+
' Command: npx preflight --stdio',
|
|
126
|
+
'2. Set environment variables: NEW_RELIC_LICENSE_KEY, NEW_RELIC_ACCOUNT_ID',
|
|
127
|
+
'3. MCP tool calls are captured automatically via the proxy',
|
|
128
|
+
'4. Use nr_observe_report_tool_call to report non-MCP tool activity',
|
|
129
|
+
'5. Use nr_observe_report_session_start / nr_observe_report_session_end for session tracking',
|
|
130
|
+
].join('\n');
|
|
131
|
+
}
|
|
132
|
+
isSupported() {
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
135
|
+
getToolDefinitions() {
|
|
136
|
+
return [REPORT_TOOL_CALL_TOOL, REPORT_SESSION_START_TOOL, REPORT_SESSION_END_TOOL];
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=generic-mcp-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic-mcp-adapter.js","sourceRoot":"","sources":["../../src/platforms/generic-mcp-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type { NormalizedToolCall, PlatformConfig, PlatformSessionMetadata, PlatformAdapter, } from './types.js';
|
|
2
|
+
export { ClaudeCodeAdapter } from './claude-code-adapter.js';
|
|
3
|
+
export { CursorAdapter } from './cursor-adapter.js';
|
|
4
|
+
export { WindsurfAdapter } from './windsurf-adapter.js';
|
|
5
|
+
export { CopilotAdapter } from './copilot-adapter.js';
|
|
6
|
+
export type { CopilotToolCallEvent, CopilotUsageRecord } from './copilot-adapter.js';
|
|
7
|
+
export { parseCopilotUsageResponse } from './copilot-adapter.js';
|
|
8
|
+
export { ZedAdapter } from './zed-adapter.js';
|
|
9
|
+
export { ContinueAdapter } from './continue-adapter.js';
|
|
10
|
+
export { AmazonQAdapter } from './amazon-q-adapter.js';
|
|
11
|
+
export { GenericMcpAdapter, validateReportToolCallInput } from './generic-mcp-adapter.js';
|
|
12
|
+
export type { ReportToolCallInput, ReportSessionStartInput, ReportSessionEndInput, } from './generic-mcp-adapter.js';
|
|
13
|
+
export { REPORT_TOOL_CALL_TOOL, REPORT_SESSION_START_TOOL, REPORT_SESSION_END_TOOL, } from './generic-mcp-adapter.js';
|
|
14
|
+
export { PlatformRegistry, createDefaultRegistry } from './platform-registry.js';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/platforms/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,uBAAuB,EACvB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAC1F,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { ClaudeCodeAdapter } from './claude-code-adapter.js';
|
|
2
|
+
export { CursorAdapter } from './cursor-adapter.js';
|
|
3
|
+
export { WindsurfAdapter } from './windsurf-adapter.js';
|
|
4
|
+
export { CopilotAdapter } from './copilot-adapter.js';
|
|
5
|
+
export { parseCopilotUsageResponse } from './copilot-adapter.js';
|
|
6
|
+
export { ZedAdapter } from './zed-adapter.js';
|
|
7
|
+
export { ContinueAdapter } from './continue-adapter.js';
|
|
8
|
+
export { AmazonQAdapter } from './amazon-q-adapter.js';
|
|
9
|
+
export { GenericMcpAdapter, validateReportToolCallInput } from './generic-mcp-adapter.js';
|
|
10
|
+
export { REPORT_TOOL_CALL_TOOL, REPORT_SESSION_START_TOOL, REPORT_SESSION_END_TOOL, } from './generic-mcp-adapter.js';
|
|
11
|
+
export { PlatformRegistry, createDefaultRegistry } from './platform-registry.js';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/platforms/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAM1F,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { PlatformAdapter } from './types.js';
|
|
2
|
+
export declare class PlatformRegistry {
|
|
3
|
+
private readonly adapters;
|
|
4
|
+
private active;
|
|
5
|
+
register(adapter: PlatformAdapter): void;
|
|
6
|
+
detect(): PlatformAdapter | null;
|
|
7
|
+
getActive(): PlatformAdapter;
|
|
8
|
+
getRegistered(): readonly PlatformAdapter[];
|
|
9
|
+
}
|
|
10
|
+
export declare function createDefaultRegistry(): PlatformRegistry;
|
|
11
|
+
//# sourceMappingURL=platform-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-registry.d.ts","sourceRoot":"","sources":["../../src/platforms/platform-registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAYlD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,MAAM,CAAgC;IAE9C,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAKxC,MAAM,IAAI,eAAe,GAAG,IAAI;IAahC,SAAS,IAAI,eAAe;IAY5B,aAAa,IAAI,SAAS,eAAe,EAAE;CAG5C;AAED,wBAAgB,qBAAqB,IAAI,gBAAgB,CAWxD"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { createLogger } from '../shared/index.js';
|
|
2
|
+
import { ClaudeCodeAdapter } from './claude-code-adapter.js';
|
|
3
|
+
import { CursorAdapter } from './cursor-adapter.js';
|
|
4
|
+
import { WindsurfAdapter } from './windsurf-adapter.js';
|
|
5
|
+
import { CopilotAdapter } from './copilot-adapter.js';
|
|
6
|
+
import { ZedAdapter } from './zed-adapter.js';
|
|
7
|
+
import { ContinueAdapter } from './continue-adapter.js';
|
|
8
|
+
import { AmazonQAdapter } from './amazon-q-adapter.js';
|
|
9
|
+
import { GenericMcpAdapter } from './generic-mcp-adapter.js';
|
|
10
|
+
const logger = createLogger('platform-registry');
|
|
11
|
+
export class PlatformRegistry {
|
|
12
|
+
adapters = [];
|
|
13
|
+
active = null;
|
|
14
|
+
register(adapter) {
|
|
15
|
+
this.adapters.push(adapter);
|
|
16
|
+
logger.debug('Registered platform adapter', { platform: adapter.platformName });
|
|
17
|
+
}
|
|
18
|
+
detect() {
|
|
19
|
+
for (const adapter of this.adapters) {
|
|
20
|
+
if (adapter.isSupported()) {
|
|
21
|
+
this.active = adapter;
|
|
22
|
+
logger.info('Detected platform', { platform: adapter.platformName });
|
|
23
|
+
return adapter;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
logger.debug('No platform detected');
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
getActive() {
|
|
30
|
+
if (this.active)
|
|
31
|
+
return this.active;
|
|
32
|
+
const detected = this.detect();
|
|
33
|
+
if (detected)
|
|
34
|
+
return detected;
|
|
35
|
+
throw new Error('No supported platform detected. Registered platforms: ' +
|
|
36
|
+
this.adapters.map((a) => a.platformName).join(', '));
|
|
37
|
+
}
|
|
38
|
+
getRegistered() {
|
|
39
|
+
return this.adapters;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export function createDefaultRegistry() {
|
|
43
|
+
const registry = new PlatformRegistry();
|
|
44
|
+
registry.register(new ClaudeCodeAdapter());
|
|
45
|
+
registry.register(new CursorAdapter());
|
|
46
|
+
registry.register(new WindsurfAdapter());
|
|
47
|
+
registry.register(new CopilotAdapter());
|
|
48
|
+
registry.register(new ZedAdapter());
|
|
49
|
+
registry.register(new ContinueAdapter());
|
|
50
|
+
registry.register(new AmazonQAdapter());
|
|
51
|
+
registry.register(new GenericMcpAdapter()); // always last
|
|
52
|
+
return registry;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=platform-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-registry.js","sourceRoot":"","sources":["../../src/platforms/platform-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,MAAM,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;AAEjD,MAAM,OAAO,gBAAgB;IACV,QAAQ,GAAsB,EAAE,CAAC;IAC1C,MAAM,GAA2B,IAAI,CAAC;IAE9C,QAAQ,CAAC,OAAwB;QAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,MAAM;QACJ,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;gBACtB,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;gBACrE,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS;QACP,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC;QAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC/B,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,MAAM,IAAI,KAAK,CACb,wDAAwD;YACtD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACtD,CAAC;IACJ,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF;AAED,MAAM,UAAU,qBAAqB;IACnC,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;IAC3C,QAAQ,CAAC,QAAQ,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;IACzC,QAAQ,CAAC,QAAQ,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;IACzC,QAAQ,CAAC,QAAQ,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC,CAAC,cAAc;IAC1D,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export interface NormalizedToolCall {
|
|
2
|
+
readonly toolName: string;
|
|
3
|
+
readonly platformToolName: string;
|
|
4
|
+
readonly platform: string;
|
|
5
|
+
readonly timestamp: number;
|
|
6
|
+
readonly durationMs: number | null;
|
|
7
|
+
readonly success: boolean;
|
|
8
|
+
readonly error?: string;
|
|
9
|
+
readonly inputSizeBytes?: number;
|
|
10
|
+
readonly outputSizeBytes?: number;
|
|
11
|
+
readonly filePath?: string;
|
|
12
|
+
readonly command?: string;
|
|
13
|
+
readonly sessionId?: string;
|
|
14
|
+
readonly toolUseId?: string;
|
|
15
|
+
readonly inputHash?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface PlatformConfig {
|
|
18
|
+
readonly platform?: string;
|
|
19
|
+
readonly [key: string]: unknown;
|
|
20
|
+
}
|
|
21
|
+
export interface PlatformSessionMetadata {
|
|
22
|
+
readonly platform: string;
|
|
23
|
+
readonly model?: string;
|
|
24
|
+
readonly ideVersion?: string;
|
|
25
|
+
readonly extensionVersion?: string;
|
|
26
|
+
readonly [key: string]: unknown;
|
|
27
|
+
}
|
|
28
|
+
export interface PlatformAdapter {
|
|
29
|
+
readonly platformName: string;
|
|
30
|
+
initialize(config: PlatformConfig): Promise<void>;
|
|
31
|
+
normalizeToolCall(raw: unknown): NormalizedToolCall;
|
|
32
|
+
getSessionMetadata(): PlatformSessionMetadata;
|
|
33
|
+
getHookInstallInstructions(): string;
|
|
34
|
+
isSupported(): boolean;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/platforms/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB,CAAC;IACpD,kBAAkB,IAAI,uBAAuB,CAAC;IAC9C,0BAA0B,IAAI,MAAM,CAAC;IACrC,WAAW,IAAI,OAAO,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/platforms/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { NormalizedToolCall, PlatformAdapter, PlatformConfig, PlatformSessionMetadata } from './types.js';
|
|
2
|
+
export declare class WindsurfAdapter implements PlatformAdapter {
|
|
3
|
+
readonly platformName = "windsurf";
|
|
4
|
+
initialize(_config: PlatformConfig): Promise<void>;
|
|
5
|
+
normalizeToolCall(raw: unknown): NormalizedToolCall;
|
|
6
|
+
getSessionMetadata(): PlatformSessionMetadata;
|
|
7
|
+
getHookInstallInstructions(): string;
|
|
8
|
+
isSupported(): boolean;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=windsurf-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"windsurf-adapter.d.ts","sourceRoot":"","sources":["../../src/platforms/windsurf-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAgCpB,qBAAa,eAAgB,YAAW,eAAe;IACrD,QAAQ,CAAC,YAAY,cAAc;IAE7B,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxD,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB;IAqBnD,kBAAkB,IAAI,uBAAuB;IAO7C,0BAA0B,IAAI,MAAM;IAWpC,WAAW,IAAI,OAAO;CAOvB"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
const WINDSURF_TOOL_MAP = {
|
|
2
|
+
'Read File': 'Read',
|
|
3
|
+
'Write File': 'Write',
|
|
4
|
+
'Edit File': 'Edit',
|
|
5
|
+
'Run Command': 'Bash',
|
|
6
|
+
Search: 'Grep',
|
|
7
|
+
read_file: 'Read',
|
|
8
|
+
write_file: 'Write',
|
|
9
|
+
edit_file: 'Edit',
|
|
10
|
+
run_command: 'Bash',
|
|
11
|
+
search: 'Grep',
|
|
12
|
+
create_file: 'Write',
|
|
13
|
+
delete_file: 'Delete',
|
|
14
|
+
list_directory: 'Glob',
|
|
15
|
+
};
|
|
16
|
+
export class WindsurfAdapter {
|
|
17
|
+
platformName = 'windsurf';
|
|
18
|
+
async initialize(_config) {
|
|
19
|
+
// Windsurf supports MCP natively — proxy captures MCP tool calls automatically.
|
|
20
|
+
// Built-in Cascade tool calls arrive via extension API or file watcher events.
|
|
21
|
+
}
|
|
22
|
+
normalizeToolCall(raw) {
|
|
23
|
+
const event = raw;
|
|
24
|
+
const platformToolName = event.tool ?? 'unknown';
|
|
25
|
+
const toolName = WINDSURF_TOOL_MAP[platformToolName] ?? 'Unknown';
|
|
26
|
+
return {
|
|
27
|
+
toolName,
|
|
28
|
+
platformToolName,
|
|
29
|
+
platform: this.platformName,
|
|
30
|
+
timestamp: event.timestamp ?? Date.now(),
|
|
31
|
+
durationMs: event.durationMs ?? null,
|
|
32
|
+
success: event.success ?? true,
|
|
33
|
+
...(event.error !== undefined && { error: event.error }),
|
|
34
|
+
...(event.inputSizeBytes !== undefined && { inputSizeBytes: event.inputSizeBytes }),
|
|
35
|
+
...(event.outputSizeBytes !== undefined && { outputSizeBytes: event.outputSizeBytes }),
|
|
36
|
+
...(event.filePath !== undefined && { filePath: event.filePath }),
|
|
37
|
+
...(event.command !== undefined && { command: event.command }),
|
|
38
|
+
...(event.sessionId !== undefined && { sessionId: event.sessionId }),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
getSessionMetadata() {
|
|
42
|
+
return {
|
|
43
|
+
platform: this.platformName,
|
|
44
|
+
...(process.env.WINDSURF_VERSION && { ideVersion: process.env.WINDSURF_VERSION }),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
getHookInstallInstructions() {
|
|
48
|
+
return [
|
|
49
|
+
'Windsurf IDE Setup:',
|
|
50
|
+
'1. Open Windsurf Settings > MCP Servers',
|
|
51
|
+
'2. Add a new MCP server with command: npx preflight --stdio',
|
|
52
|
+
'3. Set the environment variables: NEW_RELIC_LICENSE_KEY, NEW_RELIC_ACCOUNT_ID',
|
|
53
|
+
'4. MCP tool calls via Cascade are captured automatically through the proxy',
|
|
54
|
+
'5. Built-in tool calls (file edits, terminal) require the file watcher or Windsurf extension',
|
|
55
|
+
].join('\n');
|
|
56
|
+
}
|
|
57
|
+
isSupported() {
|
|
58
|
+
return (process.env.WINDSURF_SESSION_ID !== undefined ||
|
|
59
|
+
process.env.WINDSURF_CONTEXT_ID !== undefined ||
|
|
60
|
+
process.env.MCP_CLIENT === 'windsurf');
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=windsurf-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"windsurf-adapter.js","sourceRoot":"","sources":["../../src/platforms/windsurf-adapter.ts"],"names":[],"mappings":"AAOA,MAAM,iBAAiB,GAA2B;IAChD,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,MAAM;IACnB,aAAa,EAAE,MAAM;IACrB,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,OAAO;IACnB,SAAS,EAAE,MAAM;IACjB,WAAW,EAAE,MAAM;IACnB,MAAM,EAAE,MAAM;IACd,WAAW,EAAE,OAAO;IACpB,WAAW,EAAE,QAAQ;IACrB,cAAc,EAAE,MAAM;CACvB,CAAC;AAgBF,MAAM,OAAO,eAAe;IACjB,YAAY,GAAG,UAAU,CAAC;IAEnC,KAAK,CAAC,UAAU,CAAC,OAAuB;QACtC,gFAAgF;QAChF,+EAA+E;IACjF,CAAC;IAED,iBAAiB,CAAC,GAAY;QAC5B,MAAM,KAAK,GAAG,GAA4B,CAAC;QAC3C,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC;QACjD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,SAAS,CAAC;QAElE,OAAO;YACL,QAAQ;YACR,gBAAgB;YAChB,QAAQ,EAAE,IAAI,CAAC,YAAY;YAC3B,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE;YACxC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;YACpC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;YAC9B,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;YACxD,GAAG,CAAC,KAAK,CAAC,cAAc,KAAK,SAAS,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC;YACnF,GAAG,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC;YACtF,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjE,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YAC9D,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;SACrE,CAAC;IACJ,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,YAAY;YAC3B,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;SAClF,CAAC;IACJ,CAAC;IAED,0BAA0B;QACxB,OAAO;YACL,qBAAqB;YACrB,yCAAyC;YACzC,6DAA6D;YAC7D,+EAA+E;YAC/E,4EAA4E;YAC5E,8FAA8F;SAC/F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,WAAW;QACT,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,SAAS;YAC7C,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,SAAS;YAC7C,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,UAAU,CACtC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { PlatformAdapter, PlatformConfig, PlatformSessionMetadata, NormalizedToolCall } from './types.js';
|
|
2
|
+
export declare class ZedAdapter implements PlatformAdapter {
|
|
3
|
+
readonly platformName = "zed";
|
|
4
|
+
initialize(_config: PlatformConfig): Promise<void>;
|
|
5
|
+
normalizeToolCall(raw: unknown): NormalizedToolCall;
|
|
6
|
+
getSessionMetadata(): PlatformSessionMetadata;
|
|
7
|
+
getHookInstallInstructions(): string;
|
|
8
|
+
isSupported(): boolean;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=zed-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zed-adapter.d.ts","sourceRoot":"","sources":["../../src/platforms/zed-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAgCpB,qBAAa,UAAW,YAAW,eAAe;IAChD,QAAQ,CAAC,YAAY,SAAS;IAExB,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB;IAqBnD,kBAAkB,IAAI,uBAAuB;IAS7C,0BAA0B,IAAI,MAAM;IAkBpC,WAAW,IAAI,OAAO;CAQvB"}
|