braintrust 3.17.0 → 3.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dev/dist/index.d.mts +13 -0
  2. package/dev/dist/index.d.ts +13 -0
  3. package/dev/dist/index.js +4300 -2199
  4. package/dev/dist/index.mjs +2211 -110
  5. package/dist/apply-auto-instrumentation.js +238 -186
  6. package/dist/apply-auto-instrumentation.mjs +68 -16
  7. package/dist/auto-instrumentations/bundler/esbuild.cjs +90 -15
  8. package/dist/auto-instrumentations/bundler/esbuild.mjs +2 -2
  9. package/dist/auto-instrumentations/bundler/next.cjs +90 -15
  10. package/dist/auto-instrumentations/bundler/next.mjs +3 -3
  11. package/dist/auto-instrumentations/bundler/rollup.cjs +90 -15
  12. package/dist/auto-instrumentations/bundler/rollup.mjs +2 -2
  13. package/dist/auto-instrumentations/bundler/vite.cjs +90 -15
  14. package/dist/auto-instrumentations/bundler/vite.mjs +2 -2
  15. package/dist/auto-instrumentations/bundler/webpack-loader.cjs +89 -14
  16. package/dist/auto-instrumentations/bundler/webpack.cjs +90 -15
  17. package/dist/auto-instrumentations/bundler/webpack.mjs +3 -3
  18. package/dist/auto-instrumentations/{chunk-VXJONZVX.mjs → chunk-GNUEZ2PE.mjs} +13 -3
  19. package/dist/auto-instrumentations/{chunk-CNQ7BUKN.mjs → chunk-MYCHHXOE.mjs} +1 -1
  20. package/dist/auto-instrumentations/{chunk-E5DUYJWK.mjs → chunk-ZYKZEMRT.mjs} +82 -15
  21. package/dist/auto-instrumentations/hook.mjs +102 -15
  22. package/dist/auto-instrumentations/index.cjs +84 -16
  23. package/dist/auto-instrumentations/index.d.mts +3 -1
  24. package/dist/auto-instrumentations/index.d.ts +3 -1
  25. package/dist/auto-instrumentations/index.mjs +5 -3
  26. package/dist/auto-instrumentations/loader/cjs-patch.cjs +1 -1
  27. package/dist/auto-instrumentations/loader/cjs-patch.mjs +1 -1
  28. package/dist/auto-instrumentations/loader/esm-hook.mjs +1 -1
  29. package/dist/browser.d.mts +177 -11
  30. package/dist/browser.d.ts +177 -11
  31. package/dist/browser.js +2296 -104
  32. package/dist/browser.mjs +2455 -263
  33. package/dist/{chunk-VMBQETG3.js → chunk-73IYIIOL.js} +28 -2
  34. package/dist/{chunk-O4ZIWXO3.mjs → chunk-BYFADLEZ.mjs} +27 -1
  35. package/dist/cli.js +2219 -118
  36. package/dist/edge-light.d.mts +1 -1
  37. package/dist/edge-light.d.ts +1 -1
  38. package/dist/edge-light.js +2296 -104
  39. package/dist/edge-light.mjs +2455 -263
  40. package/dist/index.d.mts +177 -11
  41. package/dist/index.d.ts +177 -11
  42. package/dist/index.js +3296 -1128
  43. package/dist/index.mjs +2272 -104
  44. package/dist/instrumentation/index.d.mts +3 -0
  45. package/dist/instrumentation/index.d.ts +3 -0
  46. package/dist/instrumentation/index.js +2171 -105
  47. package/dist/instrumentation/index.mjs +2171 -105
  48. package/dist/workerd.d.mts +1 -1
  49. package/dist/workerd.d.ts +1 -1
  50. package/dist/workerd.js +2296 -104
  51. package/dist/workerd.mjs +2455 -263
  52. package/package.json +10 -10
@@ -16,6 +16,11 @@ var envIntegrationAliases = {
16
16
  openaicodexsdk: "openaiCodexSDK",
17
17
  codex: "openaiCodexSDK",
18
18
  "codex-sdk": "openaiCodexSDK",
19
+ "pi-coding-agent": "piCodingAgent",
20
+ "pi-coding-agent-sdk": "piCodingAgent",
21
+ picodingagent: "piCodingAgent",
22
+ picodingagentsdk: "piCodingAgent",
23
+ "@earendil-works/pi-coding-agent": "piCodingAgent",
19
24
  anthropic: "anthropic",
20
25
  aisdk: "aisdk",
21
26
  "ai-sdk": "aisdk",
@@ -6940,6 +6945,10 @@ var Experiment2 = class extends ObjectFetcher {
6940
6945
  return (await this.lazyMetadata.get()).project;
6941
6946
  })();
6942
6947
  }
6948
+ async _getBaseExperimentId() {
6949
+ const baseExperimentId = (await this.lazyMetadata.get()).experiment.fullInfo["base_exp_id"];
6950
+ return typeof baseExperimentId === "string" && baseExperimentId ? baseExperimentId : void 0;
6951
+ }
6943
6952
  parentObjectType() {
6944
6953
  return 1 /* EXPERIMENT */;
6945
6954
  }
@@ -7080,6 +7089,14 @@ var Experiment2 = class extends ObjectFetcher {
7080
7089
  comparisonExperimentId = baseExperiment.id;
7081
7090
  comparisonExperimentName = baseExperiment.name;
7082
7091
  }
7092
+ } else {
7093
+ try {
7094
+ const comparisonExperiment = await state2.apiConn().get_json(`v1/experiment/${comparisonExperimentId}`);
7095
+ if (typeof comparisonExperiment["name"] === "string") {
7096
+ comparisonExperimentName = comparisonExperiment["name"];
7097
+ }
7098
+ } catch {
7099
+ }
7083
7100
  }
7084
7101
  try {
7085
7102
  const results = await state2.apiConn().get_json(
@@ -8231,6 +8248,10 @@ var aiSDKChannels = defineChannels("ai", {
8231
8248
  toolLoopAgentStream: channel({
8232
8249
  channelName: "ToolLoopAgent.stream",
8233
8250
  kind: "async"
8251
+ }),
8252
+ v7CreateTelemetryDispatcher: channel({
8253
+ channelName: "createTelemetryDispatcher",
8254
+ kind: "sync-stream"
8234
8255
  })
8235
8256
  });
8236
8257
 
@@ -8241,7 +8262,7 @@ var aiSDKConfigs = [
8241
8262
  channelName: aiSDKChannels.generateText.channelName,
8242
8263
  module: {
8243
8264
  name: "ai",
8244
- versionRange: ">=3.0.0",
8265
+ versionRange: ">=3.0.0 <7.0.0",
8245
8266
  filePath: "dist/index.mjs"
8246
8267
  },
8247
8268
  functionQuery: {
@@ -8253,7 +8274,7 @@ var aiSDKConfigs = [
8253
8274
  channelName: aiSDKChannels.generateText.channelName,
8254
8275
  module: {
8255
8276
  name: "ai",
8256
- versionRange: ">=3.0.0",
8277
+ versionRange: ">=3.0.0 <7.0.0",
8257
8278
  filePath: "dist/index.js"
8258
8279
  },
8259
8280
  functionQuery: {
@@ -8279,7 +8300,7 @@ var aiSDKConfigs = [
8279
8300
  channelName: aiSDKChannels.streamTextSync.channelName,
8280
8301
  module: {
8281
8302
  name: "ai",
8282
- versionRange: ">=4.0.0",
8303
+ versionRange: ">=4.0.0 <7.0.0",
8283
8304
  filePath: "dist/index.mjs"
8284
8305
  },
8285
8306
  functionQuery: {
@@ -8303,7 +8324,7 @@ var aiSDKConfigs = [
8303
8324
  channelName: aiSDKChannels.streamTextSync.channelName,
8304
8325
  module: {
8305
8326
  name: "ai",
8306
- versionRange: ">=4.0.0",
8327
+ versionRange: ">=4.0.0 <7.0.0",
8307
8328
  filePath: "dist/index.js"
8308
8329
  },
8309
8330
  functionQuery: {
@@ -8316,7 +8337,7 @@ var aiSDKConfigs = [
8316
8337
  channelName: aiSDKChannels.generateObject.channelName,
8317
8338
  module: {
8318
8339
  name: "ai",
8319
- versionRange: ">=3.0.0",
8340
+ versionRange: ">=3.0.0 <7.0.0",
8320
8341
  filePath: "dist/index.mjs"
8321
8342
  },
8322
8343
  functionQuery: {
@@ -8328,7 +8349,7 @@ var aiSDKConfigs = [
8328
8349
  channelName: aiSDKChannels.generateObject.channelName,
8329
8350
  module: {
8330
8351
  name: "ai",
8331
- versionRange: ">=3.0.0",
8352
+ versionRange: ">=3.0.0 <7.0.0",
8332
8353
  filePath: "dist/index.js"
8333
8354
  },
8334
8355
  functionQuery: {
@@ -8341,7 +8362,7 @@ var aiSDKConfigs = [
8341
8362
  channelName: aiSDKChannels.embed.channelName,
8342
8363
  module: {
8343
8364
  name: "ai",
8344
- versionRange: ">=3.0.0",
8365
+ versionRange: ">=3.0.0 <7.0.0",
8345
8366
  filePath: "dist/index.mjs"
8346
8367
  },
8347
8368
  functionQuery: {
@@ -8353,7 +8374,7 @@ var aiSDKConfigs = [
8353
8374
  channelName: aiSDKChannels.embed.channelName,
8354
8375
  module: {
8355
8376
  name: "ai",
8356
- versionRange: ">=3.0.0",
8377
+ versionRange: ">=3.0.0 <7.0.0",
8357
8378
  filePath: "dist/index.js"
8358
8379
  },
8359
8380
  functionQuery: {
@@ -8366,7 +8387,7 @@ var aiSDKConfigs = [
8366
8387
  channelName: aiSDKChannels.embedMany.channelName,
8367
8388
  module: {
8368
8389
  name: "ai",
8369
- versionRange: ">=3.0.0",
8390
+ versionRange: ">=3.0.0 <7.0.0",
8370
8391
  filePath: "dist/index.mjs"
8371
8392
  },
8372
8393
  functionQuery: {
@@ -8378,7 +8399,7 @@ var aiSDKConfigs = [
8378
8399
  channelName: aiSDKChannels.embedMany.channelName,
8379
8400
  module: {
8380
8401
  name: "ai",
8381
- versionRange: ">=3.0.0",
8402
+ versionRange: ">=3.0.0 <7.0.0",
8382
8403
  filePath: "dist/index.js"
8383
8404
  },
8384
8405
  functionQuery: {
@@ -8391,7 +8412,7 @@ var aiSDKConfigs = [
8391
8412
  channelName: aiSDKChannels.rerank.channelName,
8392
8413
  module: {
8393
8414
  name: "ai",
8394
- versionRange: ">=5.0.0",
8415
+ versionRange: ">=5.0.0 <7.0.0",
8395
8416
  filePath: "dist/index.mjs"
8396
8417
  },
8397
8418
  functionQuery: {
@@ -8403,7 +8424,7 @@ var aiSDKConfigs = [
8403
8424
  channelName: aiSDKChannels.rerank.channelName,
8404
8425
  module: {
8405
8426
  name: "ai",
8406
- versionRange: ">=5.0.0",
8427
+ versionRange: ">=5.0.0 <7.0.0",
8407
8428
  filePath: "dist/index.js"
8408
8429
  },
8409
8430
  functionQuery: {
@@ -8411,6 +8432,21 @@ var aiSDKConfigs = [
8411
8432
  kind: "Async"
8412
8433
  }
8413
8434
  },
8435
+ // AI SDK v7 exposes its telemetry lifecycle through a dispatcher created for
8436
+ // each operation. We patch that dispatcher in the plugin instead of rewriting
8437
+ // the module to call registerTelemetry().
8438
+ {
8439
+ channelName: aiSDKChannels.v7CreateTelemetryDispatcher.channelName,
8440
+ module: {
8441
+ name: "ai",
8442
+ versionRange: ">=7.0.0-0 <8.0.0",
8443
+ filePath: "dist/index.js"
8444
+ },
8445
+ functionQuery: {
8446
+ functionName: "createTelemetryDispatcher",
8447
+ kind: "Sync"
8448
+ }
8449
+ },
8414
8450
  // streamObject - async function (v3 only, before the sync refactor in v4)
8415
8451
  {
8416
8452
  channelName: aiSDKChannels.streamObject.channelName,
@@ -8429,7 +8465,7 @@ var aiSDKConfigs = [
8429
8465
  channelName: aiSDKChannels.streamObjectSync.channelName,
8430
8466
  module: {
8431
8467
  name: "ai",
8432
- versionRange: ">=4.0.0",
8468
+ versionRange: ">=4.0.0 <7.0.0",
8433
8469
  filePath: "dist/index.mjs"
8434
8470
  },
8435
8471
  functionQuery: {
@@ -8453,7 +8489,7 @@ var aiSDKConfigs = [
8453
8489
  channelName: aiSDKChannels.streamObjectSync.channelName,
8454
8490
  module: {
8455
8491
  name: "ai",
8456
- versionRange: ">=4.0.0",
8492
+ versionRange: ">=4.0.0 <7.0.0",
8457
8493
  filePath: "dist/index.js"
8458
8494
  },
8459
8495
  functionQuery: {
@@ -9625,6 +9661,10 @@ var googleGenAIChannels = defineChannels("@google/genai", {
9625
9661
  embedContent: channel({
9626
9662
  channelName: "models.embedContent",
9627
9663
  kind: "async"
9664
+ }),
9665
+ interactionsCreate: channel({
9666
+ channelName: "interactions.create",
9667
+ kind: "async"
9628
9668
  })
9629
9669
  });
9630
9670
 
@@ -9688,6 +9728,20 @@ var googleGenAIConfigs = [
9688
9728
  methodName: "embedContentInternal",
9689
9729
  kind: "Async"
9690
9730
  }
9731
+ },
9732
+ // BaseInteractions.create - Interactions API entry point
9733
+ {
9734
+ channelName: googleGenAIChannels.interactionsCreate.channelName,
9735
+ module: {
9736
+ name: "@google/genai",
9737
+ versionRange: ">=1.33.0",
9738
+ filePath: "dist/node/index.mjs"
9739
+ },
9740
+ functionQuery: {
9741
+ className: "BaseInteractions",
9742
+ methodName: "create",
9743
+ kind: "Async"
9744
+ }
9691
9745
  }
9692
9746
  ];
9693
9747
 
@@ -10827,6 +10881,35 @@ var openRouterAgentConfigs = [
10827
10881
  }
10828
10882
  ];
10829
10883
 
10884
+ // src/instrumentation/plugins/pi-coding-agent-channels.ts
10885
+ var piCodingAgentChannels = defineChannels(
10886
+ "@earendil-works/pi-coding-agent",
10887
+ {
10888
+ prompt: channel({
10889
+ channelName: "AgentSession.prompt",
10890
+ kind: "async"
10891
+ })
10892
+ }
10893
+ );
10894
+
10895
+ // src/auto-instrumentations/configs/pi-coding-agent.ts
10896
+ var piCodingAgentVersionRange = ">=0.79.0 <0.80.0";
10897
+ var piCodingAgentConfigs = [
10898
+ {
10899
+ channelName: piCodingAgentChannels.prompt.channelName,
10900
+ module: {
10901
+ name: "@earendil-works/pi-coding-agent",
10902
+ versionRange: piCodingAgentVersionRange,
10903
+ filePath: "dist/core/agent-session.js"
10904
+ },
10905
+ functionQuery: {
10906
+ className: "AgentSession",
10907
+ methodName: "prompt",
10908
+ kind: "Async"
10909
+ }
10910
+ }
10911
+ ];
10912
+
10830
10913
  // src/auto-instrumentations/configs/all.ts
10831
10914
  var defaultInstrumentationConfigGroups = [
10832
10915
  { integrations: ["openai"], configs: openaiConfigs },
@@ -10874,6 +10957,10 @@ var defaultInstrumentationConfigGroups = [
10874
10957
  integrations: ["gitHubCopilot"],
10875
10958
  configs: gitHubCopilotConfigs
10876
10959
  },
10960
+ {
10961
+ integrations: ["piCodingAgent"],
10962
+ configs: piCodingAgentConfigs
10963
+ },
10877
10964
  {
10878
10965
  integrations: ["flue"],
10879
10966
  configs: flueConfigs
@@ -10944,6 +11031,7 @@ var ModulePatch = class {
10944
11031
  if (resolvedModule) {
10945
11032
  const packageName = getPackageName(resolvedModule.basedir) ?? resolvedModule.name;
10946
11033
  const normalizedModulePath = resolvedModule.path.replace(/\\/g, "/");
11034
+ const version = getPackageVersion(resolvedModule.basedir);
10947
11035
  const patched = applySpecialCasePatch({
10948
11036
  packageName,
10949
11037
  modulePath: normalizedModulePath,
@@ -10957,7 +11045,6 @@ var ModulePatch = class {
10957
11045
  if (!self.packages.has(packageName)) {
10958
11046
  return self.originalCompile.apply(this, args);
10959
11047
  }
10960
- const version = getPackageVersion(resolvedModule.basedir);
10961
11048
  const transformer = self.instrumentator.getTransformer(
10962
11049
  packageName,
10963
11050
  version,
@@ -37,7 +37,8 @@ __export(index_exports, {
37
37
  openAICodexConfigs: () => openAICodexConfigs,
38
38
  openRouterAgentConfigs: () => openRouterAgentConfigs,
39
39
  openRouterConfigs: () => openRouterConfigs,
40
- openaiConfigs: () => openaiConfigs
40
+ openaiConfigs: () => openaiConfigs,
41
+ piCodingAgentConfigs: () => piCodingAgentConfigs
41
42
  });
42
43
  module.exports = __toCommonJS(index_exports);
43
44
 
@@ -582,6 +583,10 @@ var aiSDKChannels = defineChannels("ai", {
582
583
  toolLoopAgentStream: channel({
583
584
  channelName: "ToolLoopAgent.stream",
584
585
  kind: "async"
586
+ }),
587
+ v7CreateTelemetryDispatcher: channel({
588
+ channelName: "createTelemetryDispatcher",
589
+ kind: "sync-stream"
585
590
  })
586
591
  });
587
592
 
@@ -592,7 +597,7 @@ var aiSDKConfigs = [
592
597
  channelName: aiSDKChannels.generateText.channelName,
593
598
  module: {
594
599
  name: "ai",
595
- versionRange: ">=3.0.0",
600
+ versionRange: ">=3.0.0 <7.0.0",
596
601
  filePath: "dist/index.mjs"
597
602
  },
598
603
  functionQuery: {
@@ -604,7 +609,7 @@ var aiSDKConfigs = [
604
609
  channelName: aiSDKChannels.generateText.channelName,
605
610
  module: {
606
611
  name: "ai",
607
- versionRange: ">=3.0.0",
612
+ versionRange: ">=3.0.0 <7.0.0",
608
613
  filePath: "dist/index.js"
609
614
  },
610
615
  functionQuery: {
@@ -630,7 +635,7 @@ var aiSDKConfigs = [
630
635
  channelName: aiSDKChannels.streamTextSync.channelName,
631
636
  module: {
632
637
  name: "ai",
633
- versionRange: ">=4.0.0",
638
+ versionRange: ">=4.0.0 <7.0.0",
634
639
  filePath: "dist/index.mjs"
635
640
  },
636
641
  functionQuery: {
@@ -654,7 +659,7 @@ var aiSDKConfigs = [
654
659
  channelName: aiSDKChannels.streamTextSync.channelName,
655
660
  module: {
656
661
  name: "ai",
657
- versionRange: ">=4.0.0",
662
+ versionRange: ">=4.0.0 <7.0.0",
658
663
  filePath: "dist/index.js"
659
664
  },
660
665
  functionQuery: {
@@ -667,7 +672,7 @@ var aiSDKConfigs = [
667
672
  channelName: aiSDKChannels.generateObject.channelName,
668
673
  module: {
669
674
  name: "ai",
670
- versionRange: ">=3.0.0",
675
+ versionRange: ">=3.0.0 <7.0.0",
671
676
  filePath: "dist/index.mjs"
672
677
  },
673
678
  functionQuery: {
@@ -679,7 +684,7 @@ var aiSDKConfigs = [
679
684
  channelName: aiSDKChannels.generateObject.channelName,
680
685
  module: {
681
686
  name: "ai",
682
- versionRange: ">=3.0.0",
687
+ versionRange: ">=3.0.0 <7.0.0",
683
688
  filePath: "dist/index.js"
684
689
  },
685
690
  functionQuery: {
@@ -692,7 +697,7 @@ var aiSDKConfigs = [
692
697
  channelName: aiSDKChannels.embed.channelName,
693
698
  module: {
694
699
  name: "ai",
695
- versionRange: ">=3.0.0",
700
+ versionRange: ">=3.0.0 <7.0.0",
696
701
  filePath: "dist/index.mjs"
697
702
  },
698
703
  functionQuery: {
@@ -704,7 +709,7 @@ var aiSDKConfigs = [
704
709
  channelName: aiSDKChannels.embed.channelName,
705
710
  module: {
706
711
  name: "ai",
707
- versionRange: ">=3.0.0",
712
+ versionRange: ">=3.0.0 <7.0.0",
708
713
  filePath: "dist/index.js"
709
714
  },
710
715
  functionQuery: {
@@ -717,7 +722,7 @@ var aiSDKConfigs = [
717
722
  channelName: aiSDKChannels.embedMany.channelName,
718
723
  module: {
719
724
  name: "ai",
720
- versionRange: ">=3.0.0",
725
+ versionRange: ">=3.0.0 <7.0.0",
721
726
  filePath: "dist/index.mjs"
722
727
  },
723
728
  functionQuery: {
@@ -729,7 +734,7 @@ var aiSDKConfigs = [
729
734
  channelName: aiSDKChannels.embedMany.channelName,
730
735
  module: {
731
736
  name: "ai",
732
- versionRange: ">=3.0.0",
737
+ versionRange: ">=3.0.0 <7.0.0",
733
738
  filePath: "dist/index.js"
734
739
  },
735
740
  functionQuery: {
@@ -742,7 +747,7 @@ var aiSDKConfigs = [
742
747
  channelName: aiSDKChannels.rerank.channelName,
743
748
  module: {
744
749
  name: "ai",
745
- versionRange: ">=5.0.0",
750
+ versionRange: ">=5.0.0 <7.0.0",
746
751
  filePath: "dist/index.mjs"
747
752
  },
748
753
  functionQuery: {
@@ -754,7 +759,7 @@ var aiSDKConfigs = [
754
759
  channelName: aiSDKChannels.rerank.channelName,
755
760
  module: {
756
761
  name: "ai",
757
- versionRange: ">=5.0.0",
762
+ versionRange: ">=5.0.0 <7.0.0",
758
763
  filePath: "dist/index.js"
759
764
  },
760
765
  functionQuery: {
@@ -762,6 +767,21 @@ var aiSDKConfigs = [
762
767
  kind: "Async"
763
768
  }
764
769
  },
770
+ // AI SDK v7 exposes its telemetry lifecycle through a dispatcher created for
771
+ // each operation. We patch that dispatcher in the plugin instead of rewriting
772
+ // the module to call registerTelemetry().
773
+ {
774
+ channelName: aiSDKChannels.v7CreateTelemetryDispatcher.channelName,
775
+ module: {
776
+ name: "ai",
777
+ versionRange: ">=7.0.0-0 <8.0.0",
778
+ filePath: "dist/index.js"
779
+ },
780
+ functionQuery: {
781
+ functionName: "createTelemetryDispatcher",
782
+ kind: "Sync"
783
+ }
784
+ },
765
785
  // streamObject - async function (v3 only, before the sync refactor in v4)
766
786
  {
767
787
  channelName: aiSDKChannels.streamObject.channelName,
@@ -780,7 +800,7 @@ var aiSDKConfigs = [
780
800
  channelName: aiSDKChannels.streamObjectSync.channelName,
781
801
  module: {
782
802
  name: "ai",
783
- versionRange: ">=4.0.0",
803
+ versionRange: ">=4.0.0 <7.0.0",
784
804
  filePath: "dist/index.mjs"
785
805
  },
786
806
  functionQuery: {
@@ -804,7 +824,7 @@ var aiSDKConfigs = [
804
824
  channelName: aiSDKChannels.streamObjectSync.channelName,
805
825
  module: {
806
826
  name: "ai",
807
- versionRange: ">=4.0.0",
827
+ versionRange: ">=4.0.0 <7.0.0",
808
828
  filePath: "dist/index.js"
809
829
  },
810
830
  functionQuery: {
@@ -1095,6 +1115,10 @@ var googleGenAIChannels = defineChannels("@google/genai", {
1095
1115
  embedContent: channel({
1096
1116
  channelName: "models.embedContent",
1097
1117
  kind: "async"
1118
+ }),
1119
+ interactionsCreate: channel({
1120
+ channelName: "interactions.create",
1121
+ kind: "async"
1098
1122
  })
1099
1123
  });
1100
1124
 
@@ -1158,6 +1182,20 @@ var googleGenAIConfigs = [
1158
1182
  methodName: "embedContentInternal",
1159
1183
  kind: "Async"
1160
1184
  }
1185
+ },
1186
+ // BaseInteractions.create - Interactions API entry point
1187
+ {
1188
+ channelName: googleGenAIChannels.interactionsCreate.channelName,
1189
+ module: {
1190
+ name: "@google/genai",
1191
+ versionRange: ">=1.33.0",
1192
+ filePath: "dist/node/index.mjs"
1193
+ },
1194
+ functionQuery: {
1195
+ className: "BaseInteractions",
1196
+ methodName: "create",
1197
+ kind: "Async"
1198
+ }
1161
1199
  }
1162
1200
  ];
1163
1201
 
@@ -2814,6 +2852,35 @@ var langchainConfigs = [
2814
2852
  }
2815
2853
  }
2816
2854
  ];
2855
+
2856
+ // src/instrumentation/plugins/pi-coding-agent-channels.ts
2857
+ var piCodingAgentChannels = defineChannels(
2858
+ "@earendil-works/pi-coding-agent",
2859
+ {
2860
+ prompt: channel({
2861
+ channelName: "AgentSession.prompt",
2862
+ kind: "async"
2863
+ })
2864
+ }
2865
+ );
2866
+
2867
+ // src/auto-instrumentations/configs/pi-coding-agent.ts
2868
+ var piCodingAgentVersionRange = ">=0.79.0 <0.80.0";
2869
+ var piCodingAgentConfigs = [
2870
+ {
2871
+ channelName: piCodingAgentChannels.prompt.channelName,
2872
+ module: {
2873
+ name: "@earendil-works/pi-coding-agent",
2874
+ versionRange: piCodingAgentVersionRange,
2875
+ filePath: "dist/core/agent-session.js"
2876
+ },
2877
+ functionQuery: {
2878
+ className: "AgentSession",
2879
+ methodName: "prompt",
2880
+ kind: "Async"
2881
+ }
2882
+ }
2883
+ ];
2817
2884
  // Annotate the CommonJS export names for ESM import in node:
2818
2885
  0 && (module.exports = {
2819
2886
  aiSDKConfigs,
@@ -2833,5 +2900,6 @@ var langchainConfigs = [
2833
2900
  openAICodexConfigs,
2834
2901
  openRouterAgentConfigs,
2835
2902
  openRouterConfigs,
2836
- openaiConfigs
2903
+ openaiConfigs,
2904
+ piCodingAgentConfigs
2837
2905
  });
@@ -110,4 +110,6 @@ declare const gitHubCopilotConfigs: InstrumentationConfig[];
110
110
 
111
111
  declare const langchainConfigs: InstrumentationConfig[];
112
112
 
113
- export { aiSDKConfigs, anthropicConfigs, claudeAgentSDKConfigs, cohereConfigs, cursorSDKConfigs, genkitConfigs, gitHubCopilotConfigs, googleADKConfigs, googleGenAIConfigs, groqConfigs, huggingFaceConfigs, langchainConfigs, mistralConfigs, openAIAgentsCoreConfigs, openAICodexConfigs, openRouterAgentConfigs, openRouterConfigs, openaiConfigs };
113
+ declare const piCodingAgentConfigs: InstrumentationConfig[];
114
+
115
+ export { aiSDKConfigs, anthropicConfigs, claudeAgentSDKConfigs, cohereConfigs, cursorSDKConfigs, genkitConfigs, gitHubCopilotConfigs, googleADKConfigs, googleGenAIConfigs, groqConfigs, huggingFaceConfigs, langchainConfigs, mistralConfigs, openAIAgentsCoreConfigs, openAICodexConfigs, openRouterAgentConfigs, openRouterConfigs, openaiConfigs, piCodingAgentConfigs };
@@ -110,4 +110,6 @@ declare const gitHubCopilotConfigs: InstrumentationConfig[];
110
110
 
111
111
  declare const langchainConfigs: InstrumentationConfig[];
112
112
 
113
- export { aiSDKConfigs, anthropicConfigs, claudeAgentSDKConfigs, cohereConfigs, cursorSDKConfigs, genkitConfigs, gitHubCopilotConfigs, googleADKConfigs, googleGenAIConfigs, groqConfigs, huggingFaceConfigs, langchainConfigs, mistralConfigs, openAIAgentsCoreConfigs, openAICodexConfigs, openRouterAgentConfigs, openRouterConfigs, openaiConfigs };
113
+ declare const piCodingAgentConfigs: InstrumentationConfig[];
114
+
115
+ export { aiSDKConfigs, anthropicConfigs, claudeAgentSDKConfigs, cohereConfigs, cursorSDKConfigs, genkitConfigs, gitHubCopilotConfigs, googleADKConfigs, googleGenAIConfigs, groqConfigs, huggingFaceConfigs, langchainConfigs, mistralConfigs, openAIAgentsCoreConfigs, openAICodexConfigs, openRouterAgentConfigs, openRouterConfigs, openaiConfigs, piCodingAgentConfigs };
@@ -16,8 +16,9 @@ import {
16
16
  openAICodexConfigs,
17
17
  openRouterAgentConfigs,
18
18
  openRouterConfigs,
19
- openaiConfigs
20
- } from "./chunk-E5DUYJWK.mjs";
19
+ openaiConfigs,
20
+ piCodingAgentConfigs
21
+ } from "./chunk-ZYKZEMRT.mjs";
21
22
  export {
22
23
  aiSDKConfigs,
23
24
  anthropicConfigs,
@@ -36,5 +37,6 @@ export {
36
37
  openAICodexConfigs,
37
38
  openRouterAgentConfigs,
38
39
  openRouterConfigs,
39
- openaiConfigs
40
+ openaiConfigs,
41
+ piCodingAgentConfigs
40
42
  };
@@ -327,6 +327,7 @@ var ModulePatch = class {
327
327
  if (resolvedModule) {
328
328
  const packageName = getPackageName(resolvedModule.basedir) ?? resolvedModule.name;
329
329
  const normalizedModulePath = resolvedModule.path.replace(/\\/g, "/");
330
+ const version = getPackageVersion(resolvedModule.basedir);
330
331
  const patched = applySpecialCasePatch({
331
332
  packageName,
332
333
  modulePath: normalizedModulePath,
@@ -340,7 +341,6 @@ var ModulePatch = class {
340
341
  if (!self.packages.has(packageName)) {
341
342
  return self.originalCompile.apply(this, args);
342
343
  }
343
- const version = getPackageVersion(resolvedModule.basedir);
344
344
  const transformer = self.instrumentator.getTransformer(
345
345
  packageName,
346
346
  version,
@@ -41,6 +41,7 @@ var ModulePatch = class {
41
41
  if (resolvedModule) {
42
42
  const packageName = getPackageName(resolvedModule.basedir) ?? resolvedModule.name;
43
43
  const normalizedModulePath = resolvedModule.path.replace(/\\/g, "/");
44
+ const version = getPackageVersion(resolvedModule.basedir);
44
45
  const patched = applySpecialCasePatch({
45
46
  packageName,
46
47
  modulePath: normalizedModulePath,
@@ -54,7 +55,6 @@ var ModulePatch = class {
54
55
  if (!self.packages.has(packageName)) {
55
56
  return self.originalCompile.apply(this, args);
56
57
  }
57
- const version = getPackageVersion(resolvedModule.basedir);
58
58
  const transformer = self.instrumentator.getTransformer(
59
59
  packageName,
60
60
  version,
@@ -47,6 +47,7 @@ async function resolve(specifier, context, nextResolve) {
47
47
  if (resolvedModule) {
48
48
  const packageName = getPackageName(resolvedModule.basedir) ?? resolvedModule.name;
49
49
  const normalizedModulePath = resolvedModule.path.replace(/\\/g, "/");
50
+ const version = getPackageVersion(resolvedModule.basedir);
50
51
  if (isSpecialCaseTarget(packageName, normalizedModulePath)) {
51
52
  specialCaseUrls.set(url.url, {
52
53
  packageName,
@@ -56,7 +57,6 @@ async function resolve(specifier, context, nextResolve) {
56
57
  if (!packages?.has(packageName)) {
57
58
  return url;
58
59
  }
59
- const version = getPackageVersion(resolvedModule.basedir);
60
60
  const transformer = instrumentator.getTransformer(
61
61
  packageName,
62
62
  version,