@newrelic/preflight 0.0.1-pre.1 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (578) hide show
  1. package/LICENSE +183 -0
  2. package/README.md +498 -0
  3. package/dist/alerts/alert-log.d.ts +24 -0
  4. package/dist/alerts/alert-log.d.ts.map +1 -0
  5. package/dist/alerts/alert-log.js +159 -0
  6. package/dist/alerts/alert-log.js.map +1 -0
  7. package/dist/alerts/alert-snapshot-collector.d.ts +168 -0
  8. package/dist/alerts/alert-snapshot-collector.d.ts.map +1 -0
  9. package/dist/alerts/alert-snapshot-collector.js +243 -0
  10. package/dist/alerts/alert-snapshot-collector.js.map +1 -0
  11. package/dist/alerts/local-alert-engine.d.ts +86 -0
  12. package/dist/alerts/local-alert-engine.d.ts.map +1 -0
  13. package/dist/alerts/local-alert-engine.js +466 -0
  14. package/dist/alerts/local-alert-engine.js.map +1 -0
  15. package/dist/alerts/local-alert-rule.d.ts +439 -0
  16. package/dist/alerts/local-alert-rule.d.ts.map +1 -0
  17. package/dist/alerts/local-alert-rule.js +139 -0
  18. package/dist/alerts/local-alert-rule.js.map +1 -0
  19. package/dist/alerts/os-notifier.d.ts +39 -0
  20. package/dist/alerts/os-notifier.d.ts.map +1 -0
  21. package/dist/alerts/os-notifier.js +170 -0
  22. package/dist/alerts/os-notifier.js.map +1 -0
  23. package/dist/alerts/types.d.ts +35 -0
  24. package/dist/alerts/types.d.ts.map +1 -0
  25. package/dist/alerts/types.js +8 -0
  26. package/dist/alerts/types.js.map +1 -0
  27. package/dist/config.d.ts +169 -0
  28. package/dist/config.d.ts.map +1 -0
  29. package/dist/config.js +868 -0
  30. package/dist/config.js.map +1 -0
  31. package/dist/dashboard/dashboard-server.d.ts +38 -0
  32. package/dist/dashboard/dashboard-server.d.ts.map +1 -0
  33. package/dist/dashboard/dashboard-server.js +207 -0
  34. package/dist/dashboard/dashboard-server.js.map +1 -0
  35. package/dist/dashboard/index.d.ts +3 -0
  36. package/dist/dashboard/index.d.ts.map +1 -0
  37. package/dist/dashboard/index.js +2 -0
  38. package/dist/dashboard/index.js.map +1 -0
  39. package/dist/dashboard/live-event-bus.d.ts +99 -0
  40. package/dist/dashboard/live-event-bus.d.ts.map +1 -0
  41. package/dist/dashboard/live-event-bus.js +56 -0
  42. package/dist/dashboard/live-event-bus.js.map +1 -0
  43. package/dist/dashboard/routes/api-handler.d.ts +122 -0
  44. package/dist/dashboard/routes/api-handler.d.ts.map +1 -0
  45. package/dist/dashboard/routes/api-handler.js +1414 -0
  46. package/dist/dashboard/routes/api-handler.js.map +1 -0
  47. package/dist/dashboard/routes/replay-analyzer.d.ts +15 -0
  48. package/dist/dashboard/routes/replay-analyzer.d.ts.map +1 -0
  49. package/dist/dashboard/routes/replay-analyzer.js +227 -0
  50. package/dist/dashboard/routes/replay-analyzer.js.map +1 -0
  51. package/dist/dashboard/routes/sse-handler.d.ts +4 -0
  52. package/dist/dashboard/routes/sse-handler.d.ts.map +1 -0
  53. package/dist/dashboard/routes/sse-handler.js +122 -0
  54. package/dist/dashboard/routes/sse-handler.js.map +1 -0
  55. package/dist/dashboard/routes/static-handler.d.ts +3 -0
  56. package/dist/dashboard/routes/static-handler.d.ts.map +1 -0
  57. package/dist/dashboard/routes/static-handler.js +123 -0
  58. package/dist/dashboard/routes/static-handler.js.map +1 -0
  59. package/dist/data/alerts/conditions/01-daily-cost-spike.json +16 -0
  60. package/dist/data/alerts/conditions/02-low-efficiency-score.json +16 -0
  61. package/dist/data/alerts/conditions/03-stuck-loop-rate.json +16 -0
  62. package/dist/data/alerts/conditions/04-anti-pattern-rate.json +16 -0
  63. package/dist/data/alerts/conditions/05-session-cost-budget.json +16 -0
  64. package/dist/data/alerts/conditions-personal/01-personal-daily-cost.json +16 -0
  65. package/dist/data/alerts/conditions-personal/02-personal-session-cost.json +16 -0
  66. package/dist/data/alerts/conditions-personal/03-personal-low-efficiency.json +16 -0
  67. package/dist/data/alerts/conditions-personal/04-personal-anti-pattern-rate.json +16 -0
  68. package/dist/data/alerts/conditions-personal/05-personal-stuck-loop.json +16 -0
  69. package/dist/data/alerts/policy.json +4 -0
  70. package/dist/data/dashboards/ai-coding-assistant-manager-view.json +103 -0
  71. package/dist/data/dashboards/ai-coding-assistant-overview.json +239 -0
  72. package/dist/data/dashboards/ai-coding-assistant-personal.json +442 -0
  73. package/dist/data/dashboards/ai-coding-assistant-platform-comparison.json +320 -0
  74. package/dist/data/dashboards/ai-coding-assistant-security.json +275 -0
  75. package/dist/data/dashboards/ai-coding-assistant-session-detail.json +296 -0
  76. package/dist/data/dashboards/ai-coding-assistant-team-view.json +345 -0
  77. package/dist/deploy/data-paths.d.ts +22 -0
  78. package/dist/deploy/data-paths.d.ts.map +1 -0
  79. package/dist/deploy/data-paths.js +69 -0
  80. package/dist/deploy/data-paths.js.map +1 -0
  81. package/dist/deploy/deploy-alerts.d.ts +58 -0
  82. package/dist/deploy/deploy-alerts.d.ts.map +1 -0
  83. package/dist/deploy/deploy-alerts.js +371 -0
  84. package/dist/deploy/deploy-alerts.js.map +1 -0
  85. package/dist/deploy/deploy-dashboards.d.ts +92 -0
  86. package/dist/deploy/deploy-dashboards.d.ts.map +1 -0
  87. package/dist/deploy/deploy-dashboards.js +282 -0
  88. package/dist/deploy/deploy-dashboards.js.map +1 -0
  89. package/dist/digest/digest-formatter.d.ts +3 -0
  90. package/dist/digest/digest-formatter.d.ts.map +1 -0
  91. package/dist/digest/digest-formatter.js +37 -0
  92. package/dist/digest/digest-formatter.js.map +1 -0
  93. package/dist/digest/digest-sender.d.ts +2 -0
  94. package/dist/digest/digest-sender.d.ts.map +1 -0
  95. package/dist/digest/digest-sender.js +29 -0
  96. package/dist/digest/digest-sender.js.map +1 -0
  97. package/dist/hooks/bash-classifier.d.ts +26 -0
  98. package/dist/hooks/bash-classifier.d.ts.map +1 -0
  99. package/dist/hooks/bash-classifier.js +409 -0
  100. package/dist/hooks/bash-classifier.js.map +1 -0
  101. package/dist/hooks/collector-script.d.ts +47 -0
  102. package/dist/hooks/collector-script.d.ts.map +1 -0
  103. package/dist/hooks/collector-script.js +662 -0
  104. package/dist/hooks/collector-script.js.map +1 -0
  105. package/dist/hooks/event-processor.d.ts +65 -0
  106. package/dist/hooks/event-processor.d.ts.map +1 -0
  107. package/dist/hooks/event-processor.js +342 -0
  108. package/dist/hooks/event-processor.js.map +1 -0
  109. package/dist/hooks/index.d.ts +7 -0
  110. package/dist/hooks/index.d.ts.map +1 -0
  111. package/dist/hooks/index.js +5 -0
  112. package/dist/hooks/index.js.map +1 -0
  113. package/dist/hooks/session-resolver.d.ts +66 -0
  114. package/dist/hooks/session-resolver.d.ts.map +1 -0
  115. package/dist/hooks/session-resolver.js +196 -0
  116. package/dist/hooks/session-resolver.js.map +1 -0
  117. package/dist/hooks/tool-parsers.d.ts +19 -0
  118. package/dist/hooks/tool-parsers.d.ts.map +1 -0
  119. package/dist/hooks/tool-parsers.js +260 -0
  120. package/dist/hooks/tool-parsers.js.map +1 -0
  121. package/dist/index.d.ts +107 -0
  122. package/dist/index.d.ts.map +1 -0
  123. package/dist/index.js +1505 -0
  124. package/dist/index.js.map +1 -0
  125. package/dist/install/cli.d.ts +11 -0
  126. package/dist/install/cli.d.ts.map +1 -0
  127. package/dist/install/cli.js +365 -0
  128. package/dist/install/cli.js.map +1 -0
  129. package/dist/install/index.d.ts +4 -0
  130. package/dist/install/index.d.ts.map +1 -0
  131. package/dist/install/index.js +3 -0
  132. package/dist/install/index.js.map +1 -0
  133. package/dist/install/install-helper.d.ts +35 -0
  134. package/dist/install/install-helper.d.ts.map +1 -0
  135. package/dist/install/install-helper.js +227 -0
  136. package/dist/install/install-helper.js.map +1 -0
  137. package/dist/install/key-validator.d.ts +19 -0
  138. package/dist/install/key-validator.d.ts.map +1 -0
  139. package/dist/install/key-validator.js +122 -0
  140. package/dist/install/key-validator.js.map +1 -0
  141. package/dist/install/migrate.d.ts +12 -0
  142. package/dist/install/migrate.d.ts.map +1 -0
  143. package/dist/install/migrate.js +115 -0
  144. package/dist/install/migrate.js.map +1 -0
  145. package/dist/install/schedule.d.ts +11 -0
  146. package/dist/install/schedule.d.ts.map +1 -0
  147. package/dist/install/schedule.js +114 -0
  148. package/dist/install/schedule.js.map +1 -0
  149. package/dist/install/setup-wizard.d.ts +40 -0
  150. package/dist/install/setup-wizard.d.ts.map +1 -0
  151. package/dist/install/setup-wizard.js +489 -0
  152. package/dist/install/setup-wizard.js.map +1 -0
  153. package/dist/lib/date.d.ts +54 -0
  154. package/dist/lib/date.d.ts.map +1 -0
  155. package/dist/lib/date.js +85 -0
  156. package/dist/lib/date.js.map +1 -0
  157. package/dist/metrics/anti-patterns.d.ts +62 -0
  158. package/dist/metrics/anti-patterns.d.ts.map +1 -0
  159. package/dist/metrics/anti-patterns.js +301 -0
  160. package/dist/metrics/anti-patterns.js.map +1 -0
  161. package/dist/metrics/api-failure-tracker.d.ts +82 -0
  162. package/dist/metrics/api-failure-tracker.d.ts.map +1 -0
  163. package/dist/metrics/api-failure-tracker.js +202 -0
  164. package/dist/metrics/api-failure-tracker.js.map +1 -0
  165. package/dist/metrics/budget-tracker.d.ts +60 -0
  166. package/dist/metrics/budget-tracker.d.ts.map +1 -0
  167. package/dist/metrics/budget-tracker.js +130 -0
  168. package/dist/metrics/budget-tracker.js.map +1 -0
  169. package/dist/metrics/claudemd-tracker.d.ts +108 -0
  170. package/dist/metrics/claudemd-tracker.d.ts.map +1 -0
  171. package/dist/metrics/claudemd-tracker.js +337 -0
  172. package/dist/metrics/claudemd-tracker.js.map +1 -0
  173. package/dist/metrics/collaboration-profile.d.ts +65 -0
  174. package/dist/metrics/collaboration-profile.d.ts.map +1 -0
  175. package/dist/metrics/collaboration-profile.js +231 -0
  176. package/dist/metrics/collaboration-profile.js.map +1 -0
  177. package/dist/metrics/context-composition-tracker.d.ts +74 -0
  178. package/dist/metrics/context-composition-tracker.d.ts.map +1 -0
  179. package/dist/metrics/context-composition-tracker.js +202 -0
  180. package/dist/metrics/context-composition-tracker.js.map +1 -0
  181. package/dist/metrics/context-tracker.d.ts +78 -0
  182. package/dist/metrics/context-tracker.d.ts.map +1 -0
  183. package/dist/metrics/context-tracker.js +222 -0
  184. package/dist/metrics/context-tracker.js.map +1 -0
  185. package/dist/metrics/context-window-tracker.d.ts +18 -0
  186. package/dist/metrics/context-window-tracker.d.ts.map +1 -0
  187. package/dist/metrics/context-window-tracker.js +35 -0
  188. package/dist/metrics/context-window-tracker.js.map +1 -0
  189. package/dist/metrics/cost-forecast.d.ts +36 -0
  190. package/dist/metrics/cost-forecast.d.ts.map +1 -0
  191. package/dist/metrics/cost-forecast.js +91 -0
  192. package/dist/metrics/cost-forecast.js.map +1 -0
  193. package/dist/metrics/cost-per-outcome.d.ts +102 -0
  194. package/dist/metrics/cost-per-outcome.d.ts.map +1 -0
  195. package/dist/metrics/cost-per-outcome.js +266 -0
  196. package/dist/metrics/cost-per-outcome.js.map +1 -0
  197. package/dist/metrics/cost-tracker.d.ts +78 -0
  198. package/dist/metrics/cost-tracker.d.ts.map +1 -0
  199. package/dist/metrics/cost-tracker.js +169 -0
  200. package/dist/metrics/cost-tracker.js.map +1 -0
  201. package/dist/metrics/decision-tracker.d.ts +49 -0
  202. package/dist/metrics/decision-tracker.d.ts.map +1 -0
  203. package/dist/metrics/decision-tracker.js +161 -0
  204. package/dist/metrics/decision-tracker.js.map +1 -0
  205. package/dist/metrics/efficiency-score.d.ts +80 -0
  206. package/dist/metrics/efficiency-score.d.ts.map +1 -0
  207. package/dist/metrics/efficiency-score.js +219 -0
  208. package/dist/metrics/efficiency-score.js.map +1 -0
  209. package/dist/metrics/git-efficiency-tracker.d.ts +165 -0
  210. package/dist/metrics/git-efficiency-tracker.d.ts.map +1 -0
  211. package/dist/metrics/git-efficiency-tracker.js +1056 -0
  212. package/dist/metrics/git-efficiency-tracker.js.map +1 -0
  213. package/dist/metrics/index.d.ts +26 -0
  214. package/dist/metrics/index.d.ts.map +1 -0
  215. package/dist/metrics/index.js +14 -0
  216. package/dist/metrics/index.js.map +1 -0
  217. package/dist/metrics/instruction-drift-tracker.d.ts +69 -0
  218. package/dist/metrics/instruction-drift-tracker.d.ts.map +1 -0
  219. package/dist/metrics/instruction-drift-tracker.js +213 -0
  220. package/dist/metrics/instruction-drift-tracker.js.map +1 -0
  221. package/dist/metrics/latency-decomposition.d.ts +50 -0
  222. package/dist/metrics/latency-decomposition.d.ts.map +1 -0
  223. package/dist/metrics/latency-decomposition.js +112 -0
  224. package/dist/metrics/latency-decomposition.js.map +1 -0
  225. package/dist/metrics/latency-tracker.d.ts +33 -0
  226. package/dist/metrics/latency-tracker.d.ts.map +1 -0
  227. package/dist/metrics/latency-tracker.js +93 -0
  228. package/dist/metrics/latency-tracker.js.map +1 -0
  229. package/dist/metrics/live-session-registry.d.ts +29 -0
  230. package/dist/metrics/live-session-registry.d.ts.map +1 -0
  231. package/dist/metrics/live-session-registry.js +103 -0
  232. package/dist/metrics/live-session-registry.js.map +1 -0
  233. package/dist/metrics/model-usage-tracker.d.ts +21 -0
  234. package/dist/metrics/model-usage-tracker.d.ts.map +1 -0
  235. package/dist/metrics/model-usage-tracker.js +53 -0
  236. package/dist/metrics/model-usage-tracker.js.map +1 -0
  237. package/dist/metrics/percentile.d.ts +5 -0
  238. package/dist/metrics/percentile.d.ts.map +1 -0
  239. package/dist/metrics/percentile.js +10 -0
  240. package/dist/metrics/percentile.js.map +1 -0
  241. package/dist/metrics/personal-coach.d.ts +47 -0
  242. package/dist/metrics/personal-coach.d.ts.map +1 -0
  243. package/dist/metrics/personal-coach.js +241 -0
  244. package/dist/metrics/personal-coach.js.map +1 -0
  245. package/dist/metrics/prompt-feedback.d.ts +75 -0
  246. package/dist/metrics/prompt-feedback.d.ts.map +1 -0
  247. package/dist/metrics/prompt-feedback.js +286 -0
  248. package/dist/metrics/prompt-feedback.js.map +1 -0
  249. package/dist/metrics/proxy-metrics.d.ts +54 -0
  250. package/dist/metrics/proxy-metrics.d.ts.map +1 -0
  251. package/dist/metrics/proxy-metrics.js +228 -0
  252. package/dist/metrics/proxy-metrics.js.map +1 -0
  253. package/dist/metrics/quality-proxy-tracker.d.ts +51 -0
  254. package/dist/metrics/quality-proxy-tracker.d.ts.map +1 -0
  255. package/dist/metrics/quality-proxy-tracker.js +162 -0
  256. package/dist/metrics/quality-proxy-tracker.js.map +1 -0
  257. package/dist/metrics/recommendation-engine.d.ts +72 -0
  258. package/dist/metrics/recommendation-engine.d.ts.map +1 -0
  259. package/dist/metrics/recommendation-engine.js +207 -0
  260. package/dist/metrics/recommendation-engine.js.map +1 -0
  261. package/dist/metrics/retry-detector.d.ts +43 -0
  262. package/dist/metrics/retry-detector.d.ts.map +1 -0
  263. package/dist/metrics/retry-detector.js +179 -0
  264. package/dist/metrics/retry-detector.js.map +1 -0
  265. package/dist/metrics/session-tracker.d.ts +75 -0
  266. package/dist/metrics/session-tracker.d.ts.map +1 -0
  267. package/dist/metrics/session-tracker.js +249 -0
  268. package/dist/metrics/session-tracker.js.map +1 -0
  269. package/dist/metrics/task-completion-tracker.d.ts +15 -0
  270. package/dist/metrics/task-completion-tracker.d.ts.map +1 -0
  271. package/dist/metrics/task-completion-tracker.js +27 -0
  272. package/dist/metrics/task-completion-tracker.js.map +1 -0
  273. package/dist/metrics/task-detector.d.ts +84 -0
  274. package/dist/metrics/task-detector.d.ts.map +1 -0
  275. package/dist/metrics/task-detector.js +302 -0
  276. package/dist/metrics/task-detector.js.map +1 -0
  277. package/dist/metrics/tool-selection-scorer.d.ts +39 -0
  278. package/dist/metrics/tool-selection-scorer.d.ts.map +1 -0
  279. package/dist/metrics/tool-selection-scorer.js +193 -0
  280. package/dist/metrics/tool-selection-scorer.js.map +1 -0
  281. package/dist/metrics/trend-analyzer.d.ts +92 -0
  282. package/dist/metrics/trend-analyzer.d.ts.map +1 -0
  283. package/dist/metrics/trend-analyzer.js +293 -0
  284. package/dist/metrics/trend-analyzer.js.map +1 -0
  285. package/dist/metrics/turn-cost-attributor.d.ts +41 -0
  286. package/dist/metrics/turn-cost-attributor.d.ts.map +1 -0
  287. package/dist/metrics/turn-cost-attributor.js +118 -0
  288. package/dist/metrics/turn-cost-attributor.js.map +1 -0
  289. package/dist/metrics/turn-tracker.d.ts +49 -0
  290. package/dist/metrics/turn-tracker.d.ts.map +1 -0
  291. package/dist/metrics/turn-tracker.js +192 -0
  292. package/dist/metrics/turn-tracker.js.map +1 -0
  293. package/dist/platforms/amazon-q-adapter.d.ts +10 -0
  294. package/dist/platforms/amazon-q-adapter.d.ts.map +1 -0
  295. package/dist/platforms/amazon-q-adapter.js +75 -0
  296. package/dist/platforms/amazon-q-adapter.js.map +1 -0
  297. package/dist/platforms/claude-code-adapter.d.ts +10 -0
  298. package/dist/platforms/claude-code-adapter.d.ts.map +1 -0
  299. package/dist/platforms/claude-code-adapter.js +48 -0
  300. package/dist/platforms/claude-code-adapter.js.map +1 -0
  301. package/dist/platforms/continue-adapter.d.ts +10 -0
  302. package/dist/platforms/continue-adapter.d.ts.map +1 -0
  303. package/dist/platforms/continue-adapter.js +73 -0
  304. package/dist/platforms/continue-adapter.js.map +1 -0
  305. package/dist/platforms/copilot-adapter.d.ts +37 -0
  306. package/dist/platforms/copilot-adapter.d.ts.map +1 -0
  307. package/dist/platforms/copilot-adapter.js +66 -0
  308. package/dist/platforms/copilot-adapter.js.map +1 -0
  309. package/dist/platforms/cursor-adapter.d.ts +10 -0
  310. package/dist/platforms/cursor-adapter.d.ts.map +1 -0
  311. package/dist/platforms/cursor-adapter.js +60 -0
  312. package/dist/platforms/cursor-adapter.js.map +1 -0
  313. package/dist/platforms/generic-mcp-adapter.d.ts +113 -0
  314. package/dist/platforms/generic-mcp-adapter.d.ts.map +1 -0
  315. package/dist/platforms/generic-mcp-adapter.js +139 -0
  316. package/dist/platforms/generic-mcp-adapter.js.map +1 -0
  317. package/dist/platforms/index.d.ts +15 -0
  318. package/dist/platforms/index.d.ts.map +1 -0
  319. package/dist/platforms/index.js +12 -0
  320. package/dist/platforms/index.js.map +1 -0
  321. package/dist/platforms/platform-registry.d.ts +11 -0
  322. package/dist/platforms/platform-registry.d.ts.map +1 -0
  323. package/dist/platforms/platform-registry.js +54 -0
  324. package/dist/platforms/platform-registry.js.map +1 -0
  325. package/dist/platforms/types.d.ts +36 -0
  326. package/dist/platforms/types.d.ts.map +1 -0
  327. package/dist/platforms/types.js +2 -0
  328. package/dist/platforms/types.js.map +1 -0
  329. package/dist/platforms/windsurf-adapter.d.ts +10 -0
  330. package/dist/platforms/windsurf-adapter.d.ts.map +1 -0
  331. package/dist/platforms/windsurf-adapter.js +63 -0
  332. package/dist/platforms/windsurf-adapter.js.map +1 -0
  333. package/dist/platforms/zed-adapter.d.ts +10 -0
  334. package/dist/platforms/zed-adapter.d.ts.map +1 -0
  335. package/dist/platforms/zed-adapter.js +72 -0
  336. package/dist/platforms/zed-adapter.js.map +1 -0
  337. package/dist/proxy/index.d.ts +7 -0
  338. package/dist/proxy/index.d.ts.map +1 -0
  339. package/dist/proxy/index.js +5 -0
  340. package/dist/proxy/index.js.map +1 -0
  341. package/dist/proxy/otlp-receiver.d.ts +28 -0
  342. package/dist/proxy/otlp-receiver.d.ts.map +1 -0
  343. package/dist/proxy/otlp-receiver.js +319 -0
  344. package/dist/proxy/otlp-receiver.js.map +1 -0
  345. package/dist/proxy/proxy-manager.d.ts +47 -0
  346. package/dist/proxy/proxy-manager.d.ts.map +1 -0
  347. package/dist/proxy/proxy-manager.js +338 -0
  348. package/dist/proxy/proxy-manager.js.map +1 -0
  349. package/dist/proxy/types.d.ts +72 -0
  350. package/dist/proxy/types.d.ts.map +1 -0
  351. package/dist/proxy/types.js +33 -0
  352. package/dist/proxy/types.js.map +1 -0
  353. package/dist/proxy/upstream-http.d.ts +26 -0
  354. package/dist/proxy/upstream-http.d.ts.map +1 -0
  355. package/dist/proxy/upstream-http.js +209 -0
  356. package/dist/proxy/upstream-http.js.map +1 -0
  357. package/dist/proxy/upstream-stdio.d.ts +25 -0
  358. package/dist/proxy/upstream-stdio.d.ts.map +1 -0
  359. package/dist/proxy/upstream-stdio.js +256 -0
  360. package/dist/proxy/upstream-stdio.js.map +1 -0
  361. package/dist/security/audit-trail.d.ts +74 -0
  362. package/dist/security/audit-trail.d.ts.map +1 -0
  363. package/dist/security/audit-trail.js +338 -0
  364. package/dist/security/audit-trail.js.map +1 -0
  365. package/dist/security/index.d.ts +5 -0
  366. package/dist/security/index.d.ts.map +1 -0
  367. package/dist/security/index.js +4 -0
  368. package/dist/security/index.js.map +1 -0
  369. package/dist/security/ssrf.d.ts +2 -0
  370. package/dist/security/ssrf.d.ts.map +1 -0
  371. package/dist/security/ssrf.js +126 -0
  372. package/dist/security/ssrf.js.map +1 -0
  373. package/dist/server.d.ts +14 -0
  374. package/dist/server.d.ts.map +1 -0
  375. package/dist/server.js +117 -0
  376. package/dist/server.js.map +1 -0
  377. package/dist/shared/__test-utils__/log-output.d.ts +49 -0
  378. package/dist/shared/__test-utils__/log-output.d.ts.map +1 -0
  379. package/dist/shared/__test-utils__/log-output.js +38 -0
  380. package/dist/shared/__test-utils__/log-output.js.map +1 -0
  381. package/dist/shared/config.d.ts +56 -0
  382. package/dist/shared/config.d.ts.map +1 -0
  383. package/dist/shared/config.js +290 -0
  384. package/dist/shared/config.js.map +1 -0
  385. package/dist/shared/errors.d.ts +139 -0
  386. package/dist/shared/errors.d.ts.map +1 -0
  387. package/dist/shared/errors.js +406 -0
  388. package/dist/shared/errors.js.map +1 -0
  389. package/dist/shared/events/factory.d.ts +143 -0
  390. package/dist/shared/events/factory.d.ts.map +1 -0
  391. package/dist/shared/events/factory.js +351 -0
  392. package/dist/shared/events/factory.js.map +1 -0
  393. package/dist/shared/events/index.d.ts +6 -0
  394. package/dist/shared/events/index.d.ts.map +1 -0
  395. package/dist/shared/events/index.js +3 -0
  396. package/dist/shared/events/index.js.map +1 -0
  397. package/dist/shared/events/serialize.d.ts +87 -0
  398. package/dist/shared/events/serialize.d.ts.map +1 -0
  399. package/dist/shared/events/serialize.js +510 -0
  400. package/dist/shared/events/serialize.js.map +1 -0
  401. package/dist/shared/events/types.d.ts +139 -0
  402. package/dist/shared/events/types.d.ts.map +1 -0
  403. package/dist/shared/events/types.js +2 -0
  404. package/dist/shared/events/types.js.map +1 -0
  405. package/dist/shared/harvest/event-buffer.d.ts +59 -0
  406. package/dist/shared/harvest/event-buffer.d.ts.map +1 -0
  407. package/dist/shared/harvest/event-buffer.js +100 -0
  408. package/dist/shared/harvest/event-buffer.js.map +1 -0
  409. package/dist/shared/harvest/harvest-scheduler.d.ts +200 -0
  410. package/dist/shared/harvest/harvest-scheduler.d.ts.map +1 -0
  411. package/dist/shared/harvest/harvest-scheduler.js +647 -0
  412. package/dist/shared/harvest/harvest-scheduler.js.map +1 -0
  413. package/dist/shared/harvest/index.d.ts +7 -0
  414. package/dist/shared/harvest/index.d.ts.map +1 -0
  415. package/dist/shared/harvest/index.js +4 -0
  416. package/dist/shared/harvest/index.js.map +1 -0
  417. package/dist/shared/harvest/metric-aggregator.d.ts +115 -0
  418. package/dist/shared/harvest/metric-aggregator.d.ts.map +1 -0
  419. package/dist/shared/harvest/metric-aggregator.js +247 -0
  420. package/dist/shared/harvest/metric-aggregator.js.map +1 -0
  421. package/dist/shared/index.d.ts +22 -0
  422. package/dist/shared/index.d.ts.map +1 -0
  423. package/dist/shared/index.js +13 -0
  424. package/dist/shared/index.js.map +1 -0
  425. package/dist/shared/logger.d.ts +57 -0
  426. package/dist/shared/logger.d.ts.map +1 -0
  427. package/dist/shared/logger.js +166 -0
  428. package/dist/shared/logger.js.map +1 -0
  429. package/dist/shared/pricing-data.d.ts +4 -0
  430. package/dist/shared/pricing-data.d.ts.map +1 -0
  431. package/dist/shared/pricing-data.js +473 -0
  432. package/dist/shared/pricing-data.js.map +1 -0
  433. package/dist/shared/pricing.d.ts +148 -0
  434. package/dist/shared/pricing.d.ts.map +1 -0
  435. package/dist/shared/pricing.js +528 -0
  436. package/dist/shared/pricing.js.map +1 -0
  437. package/dist/shared/redact.d.ts +33 -0
  438. package/dist/shared/redact.d.ts.map +1 -0
  439. package/dist/shared/redact.js +110 -0
  440. package/dist/shared/redact.js.map +1 -0
  441. package/dist/shared/timing.d.ts +96 -0
  442. package/dist/shared/timing.d.ts.map +1 -0
  443. package/dist/shared/timing.js +173 -0
  444. package/dist/shared/timing.js.map +1 -0
  445. package/dist/shared/tokens.d.ts +145 -0
  446. package/dist/shared/tokens.d.ts.map +1 -0
  447. package/dist/shared/tokens.js +492 -0
  448. package/dist/shared/tokens.js.map +1 -0
  449. package/dist/shared/transport/events-api.d.ts +14 -0
  450. package/dist/shared/transport/events-api.d.ts.map +1 -0
  451. package/dist/shared/transport/events-api.js +29 -0
  452. package/dist/shared/transport/events-api.js.map +1 -0
  453. package/dist/shared/transport/http-client.d.ts +49 -0
  454. package/dist/shared/transport/http-client.d.ts.map +1 -0
  455. package/dist/shared/transport/http-client.js +381 -0
  456. package/dist/shared/transport/http-client.js.map +1 -0
  457. package/dist/shared/transport/index.d.ts +10 -0
  458. package/dist/shared/transport/index.d.ts.map +1 -0
  459. package/dist/shared/transport/index.js +6 -0
  460. package/dist/shared/transport/index.js.map +1 -0
  461. package/dist/shared/transport/logs-api.d.ts +29 -0
  462. package/dist/shared/transport/logs-api.d.ts.map +1 -0
  463. package/dist/shared/transport/logs-api.js +40 -0
  464. package/dist/shared/transport/logs-api.js.map +1 -0
  465. package/dist/shared/transport/metric-api.d.ts +9 -0
  466. package/dist/shared/transport/metric-api.d.ts.map +1 -0
  467. package/dist/shared/transport/metric-api.js +39 -0
  468. package/dist/shared/transport/metric-api.js.map +1 -0
  469. package/dist/shared/transport/otlp-event-bridge.d.ts +22 -0
  470. package/dist/shared/transport/otlp-event-bridge.d.ts.map +1 -0
  471. package/dist/shared/transport/otlp-event-bridge.js +50 -0
  472. package/dist/shared/transport/otlp-event-bridge.js.map +1 -0
  473. package/dist/shared/transport/otlp-shared.d.ts +14 -0
  474. package/dist/shared/transport/otlp-shared.d.ts.map +1 -0
  475. package/dist/shared/transport/otlp-shared.js +49 -0
  476. package/dist/shared/transport/otlp-shared.js.map +1 -0
  477. package/dist/shared/transport/otlp-transport.d.ts +58 -0
  478. package/dist/shared/transport/otlp-transport.d.ts.map +1 -0
  479. package/dist/shared/transport/otlp-transport.js +236 -0
  480. package/dist/shared/transport/otlp-transport.js.map +1 -0
  481. package/dist/shared/transport/types.d.ts +129 -0
  482. package/dist/shared/transport/types.d.ts.map +1 -0
  483. package/dist/shared/transport/types.js +2 -0
  484. package/dist/shared/transport/types.js.map +1 -0
  485. package/dist/shared/version.d.ts +2 -0
  486. package/dist/shared/version.d.ts.map +1 -0
  487. package/dist/shared/version.js +2 -0
  488. package/dist/shared/version.js.map +1 -0
  489. package/dist/storage/index.d.ts +7 -0
  490. package/dist/storage/index.d.ts.map +1 -0
  491. package/dist/storage/index.js +4 -0
  492. package/dist/storage/index.js.map +1 -0
  493. package/dist/storage/local-store.d.ts +153 -0
  494. package/dist/storage/local-store.d.ts.map +1 -0
  495. package/dist/storage/local-store.js +719 -0
  496. package/dist/storage/local-store.js.map +1 -0
  497. package/dist/storage/retention.d.ts +2 -0
  498. package/dist/storage/retention.d.ts.map +1 -0
  499. package/dist/storage/retention.js +53 -0
  500. package/dist/storage/retention.js.map +1 -0
  501. package/dist/storage/session-store.d.ts +97 -0
  502. package/dist/storage/session-store.d.ts.map +1 -0
  503. package/dist/storage/session-store.js +391 -0
  504. package/dist/storage/session-store.js.map +1 -0
  505. package/dist/storage/types.d.ts +64 -0
  506. package/dist/storage/types.d.ts.map +1 -0
  507. package/dist/storage/types.js +2 -0
  508. package/dist/storage/types.js.map +1 -0
  509. package/dist/storage/weekly-summary.d.ts +61 -0
  510. package/dist/storage/weekly-summary.d.ts.map +1 -0
  511. package/dist/storage/weekly-summary.js +243 -0
  512. package/dist/storage/weekly-summary.js.map +1 -0
  513. package/dist/tools/analytics-tools.d.ts +101 -0
  514. package/dist/tools/analytics-tools.d.ts.map +1 -0
  515. package/dist/tools/analytics-tools.js +71 -0
  516. package/dist/tools/analytics-tools.js.map +1 -0
  517. package/dist/tools/cost-tools.d.ts +121 -0
  518. package/dist/tools/cost-tools.d.ts.map +1 -0
  519. package/dist/tools/cost-tools.js +174 -0
  520. package/dist/tools/cost-tools.js.map +1 -0
  521. package/dist/tools/cross-session-tools.d.ts +376 -0
  522. package/dist/tools/cross-session-tools.d.ts.map +1 -0
  523. package/dist/tools/cross-session-tools.js +820 -0
  524. package/dist/tools/cross-session-tools.js.map +1 -0
  525. package/dist/tools/extended-analytics-tools.d.ts +164 -0
  526. package/dist/tools/extended-analytics-tools.d.ts.map +1 -0
  527. package/dist/tools/extended-analytics-tools.js +121 -0
  528. package/dist/tools/extended-analytics-tools.js.map +1 -0
  529. package/dist/tools/index.d.ts +7 -0
  530. package/dist/tools/index.d.ts.map +1 -0
  531. package/dist/tools/index.js +4 -0
  532. package/dist/tools/index.js.map +1 -0
  533. package/dist/tools/session-stats.d.ts +162 -0
  534. package/dist/tools/session-stats.d.ts.map +1 -0
  535. package/dist/tools/session-stats.js +1054 -0
  536. package/dist/tools/session-stats.js.map +1 -0
  537. package/dist/tools/workflow-tools.d.ts +126 -0
  538. package/dist/tools/workflow-tools.d.ts.map +1 -0
  539. package/dist/tools/workflow-tools.js +274 -0
  540. package/dist/tools/workflow-tools.js.map +1 -0
  541. package/dist/tracing/mcp-tracer.d.ts +4 -0
  542. package/dist/tracing/mcp-tracer.d.ts.map +1 -0
  543. package/dist/tracing/mcp-tracer.js +14 -0
  544. package/dist/tracing/mcp-tracer.js.map +1 -0
  545. package/dist/tracing/session-span.d.ts +14 -0
  546. package/dist/tracing/session-span.d.ts.map +1 -0
  547. package/dist/tracing/session-span.js +53 -0
  548. package/dist/tracing/session-span.js.map +1 -0
  549. package/dist/tracing/task-span-tracker.d.ts +11 -0
  550. package/dist/tracing/task-span-tracker.d.ts.map +1 -0
  551. package/dist/tracing/task-span-tracker.js +59 -0
  552. package/dist/tracing/task-span-tracker.js.map +1 -0
  553. package/dist/tracing/tool-call-span.d.ts +4 -0
  554. package/dist/tracing/tool-call-span.d.ts.map +1 -0
  555. package/dist/tracing/tool-call-span.js +60 -0
  556. package/dist/tracing/tool-call-span.js.map +1 -0
  557. package/dist/transport/index.d.ts +3 -0
  558. package/dist/transport/index.d.ts.map +1 -0
  559. package/dist/transport/index.js +2 -0
  560. package/dist/transport/index.js.map +1 -0
  561. package/dist/transport/log-ingest.d.ts +42 -0
  562. package/dist/transport/log-ingest.d.ts.map +1 -0
  563. package/dist/transport/log-ingest.js +151 -0
  564. package/dist/transport/log-ingest.js.map +1 -0
  565. package/dist/transport/nr-ingest.d.ts +171 -0
  566. package/dist/transport/nr-ingest.d.ts.map +1 -0
  567. package/dist/transport/nr-ingest.js +659 -0
  568. package/dist/transport/nr-ingest.js.map +1 -0
  569. package/dist/types.d.ts +45 -0
  570. package/dist/types.d.ts.map +1 -0
  571. package/dist/types.js +2 -0
  572. package/dist/types.js.map +1 -0
  573. package/dist/web/assets/index-BrL281N-.css +2 -0
  574. package/dist/web/assets/index-CcaYZzXm.js +42 -0
  575. package/dist/web/favicon.svg +15 -0
  576. package/dist/web/index.html +15 -0
  577. package/examples/local-alert-rules.json +106 -0
  578. package/package.json +129 -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -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"}