langwatch 0.34.0 → 0.35.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/dist/{chunk-RIPASL56.mjs → chunk-2O4ILSP5.mjs} +2 -2
- package/dist/{chunk-2V5FBEY3.mjs → chunk-3QHURXIZ.mjs} +42 -5
- package/dist/chunk-3QHURXIZ.mjs.map +1 -0
- package/dist/{chunk-FSACIXYG.js → chunk-53AMPF5E.js} +16 -22
- package/dist/chunk-53AMPF5E.js.map +1 -0
- package/dist/{chunk-YKWXS2BM.js → chunk-EDWIKCYX.js} +130 -48
- package/dist/chunk-EDWIKCYX.js.map +1 -0
- package/dist/{chunk-QZRBNYW2.js → chunk-HBVGKWJK.js} +53 -16
- package/dist/chunk-HBVGKWJK.js.map +1 -0
- package/dist/{chunk-NTRV2ICJ.js → chunk-IUSLT65Z.js} +2 -2
- package/dist/{chunk-NTRV2ICJ.js.map → chunk-IUSLT65Z.js.map} +1 -1
- package/dist/{chunk-4ZA6WF6S.mjs → chunk-KH2GOLFO.mjs} +104 -22
- package/dist/chunk-KH2GOLFO.mjs.map +1 -0
- package/dist/{chunk-PONU4KJX.mjs → chunk-L5KBRKHS.mjs} +110 -5
- package/dist/chunk-L5KBRKHS.mjs.map +1 -0
- package/dist/chunk-TKSTXX3D.js +239 -0
- package/dist/chunk-TKSTXX3D.js.map +1 -0
- package/dist/{chunk-42EDFIG2.mjs → chunk-XMAFHMLS.mjs} +10 -16
- package/dist/{chunk-42EDFIG2.mjs.map → chunk-XMAFHMLS.mjs.map} +1 -1
- package/dist/cli/bundle.js +3768 -0
- package/dist/cli/index.js +10 -1335
- package/dist/{implementation-BIfcyP32.d.ts → implementation-CMWs8g5L.d.ts} +3 -3
- package/dist/{implementation-BBG46scL.d.mts → implementation-Cv1hPZBQ.d.mts} +3 -3
- package/dist/index.d.mts +125 -12
- package/dist/index.d.ts +125 -12
- package/dist/index.js +4840 -1410
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4788 -1358
- package/dist/index.mjs.map +1 -1
- package/dist/observability-sdk/index.d.mts +6 -6
- package/dist/observability-sdk/index.d.ts +6 -6
- package/dist/observability-sdk/index.js +5 -10
- package/dist/observability-sdk/index.js.map +1 -1
- package/dist/observability-sdk/index.mjs +5 -10
- package/dist/observability-sdk/instrumentation/langchain/index.d.mts +2 -2
- package/dist/observability-sdk/instrumentation/langchain/index.d.ts +2 -2
- package/dist/observability-sdk/instrumentation/langchain/index.js +18 -21
- package/dist/observability-sdk/instrumentation/langchain/index.js.map +1 -1
- package/dist/observability-sdk/instrumentation/langchain/index.mjs +3 -6
- package/dist/observability-sdk/instrumentation/langchain/index.mjs.map +1 -1
- package/dist/observability-sdk/setup/node/index.d.mts +2 -2
- package/dist/observability-sdk/setup/node/index.d.ts +2 -2
- package/dist/observability-sdk/setup/node/index.js +4 -8
- package/dist/observability-sdk/setup/node/index.js.map +1 -1
- package/dist/observability-sdk/setup/node/index.mjs +3 -7
- package/dist/{types-CYfKDbKj.d.ts → types-D-yAkWoC.d.ts} +71 -3
- package/dist/{types-Dmazk5Bk.d.mts → types-DLfhJb38.d.mts} +1 -1
- package/dist/{types-Dmazk5Bk.d.ts → types-DLfhJb38.d.ts} +1 -1
- package/dist/{types-BvCQH8F1.d.ts → types-VOZv9LYO.d.mts} +1 -1
- package/dist/{types-BvCQH8F1.d.mts → types-VOZv9LYO.d.ts} +1 -1
- package/dist/{types-fzTtg5sg.d.mts → types-bfBzGB7S.d.mts} +71 -3
- package/package.json +13 -6
- package/dist/add-TFE2BH4K.mjs +0 -148
- package/dist/add-TFE2BH4K.mjs.map +0 -1
- package/dist/add-URBA6FGV.js +0 -148
- package/dist/add-URBA6FGV.js.map +0 -1
- package/dist/archive-CL6XUEYU.mjs +0 -41
- package/dist/archive-CL6XUEYU.mjs.map +0 -1
- package/dist/archive-K4SSNBML.js +0 -41
- package/dist/archive-K4SSNBML.js.map +0 -1
- package/dist/assign-4PVKU4WO.mjs +0 -54
- package/dist/assign-4PVKU4WO.mjs.map +0 -1
- package/dist/assign-RFENMUXO.js +0 -54
- package/dist/assign-RFENMUXO.js.map +0 -1
- package/dist/chunk-2MITUTNI.js +0 -205
- package/dist/chunk-2MITUTNI.js.map +0 -1
- package/dist/chunk-2V5FBEY3.mjs.map +0 -1
- package/dist/chunk-2VVANTLB.js +0 -68
- package/dist/chunk-2VVANTLB.js.map +0 -1
- package/dist/chunk-377U47MY.js +0 -42
- package/dist/chunk-377U47MY.js.map +0 -1
- package/dist/chunk-3K6C35HN.mjs +0 -80
- package/dist/chunk-3K6C35HN.mjs.map +0 -1
- package/dist/chunk-3PZ5VO5T.mjs +0 -205
- package/dist/chunk-3PZ5VO5T.mjs.map +0 -1
- package/dist/chunk-4Q4HSAKZ.js +0 -894
- package/dist/chunk-4Q4HSAKZ.js.map +0 -1
- package/dist/chunk-4ZA6WF6S.mjs.map +0 -1
- package/dist/chunk-535JT5M3.mjs +0 -42
- package/dist/chunk-535JT5M3.mjs.map +0 -1
- package/dist/chunk-5M6GLAIG.js +0 -410
- package/dist/chunk-5M6GLAIG.js.map +0 -1
- package/dist/chunk-5PF32BLZ.mjs +0 -76
- package/dist/chunk-5PF32BLZ.mjs.map +0 -1
- package/dist/chunk-5W4B44MH.mjs +0 -103
- package/dist/chunk-5W4B44MH.mjs.map +0 -1
- package/dist/chunk-5Z3A3Z5M.mjs +0 -96
- package/dist/chunk-5Z3A3Z5M.mjs.map +0 -1
- package/dist/chunk-64H4FLDB.mjs +0 -51
- package/dist/chunk-64H4FLDB.mjs.map +0 -1
- package/dist/chunk-67PP4GB4.mjs +0 -40
- package/dist/chunk-67PP4GB4.mjs.map +0 -1
- package/dist/chunk-6KMX34ZH.js +0 -257
- package/dist/chunk-6KMX34ZH.js.map +0 -1
- package/dist/chunk-6RSHYGUB.js +0 -85
- package/dist/chunk-6RSHYGUB.js.map +0 -1
- package/dist/chunk-7HFW67OR.mjs +0 -63
- package/dist/chunk-7HFW67OR.mjs.map +0 -1
- package/dist/chunk-7KSBRJUY.js +0 -54
- package/dist/chunk-7KSBRJUY.js.map +0 -1
- package/dist/chunk-7ULZZHBP.mjs +0 -42
- package/dist/chunk-7ULZZHBP.mjs.map +0 -1
- package/dist/chunk-A6YWANGL.js +0 -103
- package/dist/chunk-A6YWANGL.js.map +0 -1
- package/dist/chunk-B5TBCV6N.js +0 -96
- package/dist/chunk-B5TBCV6N.js.map +0 -1
- package/dist/chunk-BAX4W3AY.mjs +0 -62
- package/dist/chunk-BAX4W3AY.mjs.map +0 -1
- package/dist/chunk-BGYXA2QV.mjs +0 -96
- package/dist/chunk-BGYXA2QV.mjs.map +0 -1
- package/dist/chunk-BRPEG3YQ.js +0 -62
- package/dist/chunk-BRPEG3YQ.js.map +0 -1
- package/dist/chunk-C5Y772G7.js +0 -152
- package/dist/chunk-C5Y772G7.js.map +0 -1
- package/dist/chunk-CEJY6QI3.mjs +0 -508
- package/dist/chunk-CEJY6QI3.mjs.map +0 -1
- package/dist/chunk-CGECDLSE.js +0 -90
- package/dist/chunk-CGECDLSE.js.map +0 -1
- package/dist/chunk-CKTJADY6.mjs +0 -348
- package/dist/chunk-CKTJADY6.mjs.map +0 -1
- package/dist/chunk-CLYXJJ6C.js +0 -66
- package/dist/chunk-CLYXJJ6C.js.map +0 -1
- package/dist/chunk-COMOCQA6.mjs +0 -13
- package/dist/chunk-COMOCQA6.mjs.map +0 -1
- package/dist/chunk-D2VRKNFF.js +0 -1672
- package/dist/chunk-D2VRKNFF.js.map +0 -1
- package/dist/chunk-D5NUUB4G.mjs +0 -225
- package/dist/chunk-D5NUUB4G.mjs.map +0 -1
- package/dist/chunk-DCTJDRBW.js +0 -40
- package/dist/chunk-DCTJDRBW.js.map +0 -1
- package/dist/chunk-DIILEB4J.js +0 -196
- package/dist/chunk-DIILEB4J.js.map +0 -1
- package/dist/chunk-DOJBPYAE.js +0 -663
- package/dist/chunk-DOJBPYAE.js.map +0 -1
- package/dist/chunk-DTEKJ3UD.mjs +0 -66
- package/dist/chunk-DTEKJ3UD.mjs.map +0 -1
- package/dist/chunk-FG3JQBJB.mjs +0 -68
- package/dist/chunk-FG3JQBJB.mjs.map +0 -1
- package/dist/chunk-FNFLZXXA.js +0 -80
- package/dist/chunk-FNFLZXXA.js.map +0 -1
- package/dist/chunk-FSACIXYG.js.map +0 -1
- package/dist/chunk-GFLV5NP6.mjs +0 -70
- package/dist/chunk-GFLV5NP6.mjs.map +0 -1
- package/dist/chunk-GNWMKXDU.mjs +0 -66
- package/dist/chunk-GNWMKXDU.mjs.map +0 -1
- package/dist/chunk-GPGJNBPP.js +0 -63
- package/dist/chunk-GPGJNBPP.js.map +0 -1
- package/dist/chunk-GUPNZDU7.js +0 -101
- package/dist/chunk-GUPNZDU7.js.map +0 -1
- package/dist/chunk-HDA25KWZ.js +0 -134
- package/dist/chunk-HDA25KWZ.js.map +0 -1
- package/dist/chunk-IZD5CIVE.js +0 -70
- package/dist/chunk-IZD5CIVE.js.map +0 -1
- package/dist/chunk-J3KM7ZO7.mjs +0 -152
- package/dist/chunk-J3KM7ZO7.mjs.map +0 -1
- package/dist/chunk-JQVI5CD7.mjs +0 -894
- package/dist/chunk-JQVI5CD7.mjs.map +0 -1
- package/dist/chunk-JSV75WAY.js +0 -76
- package/dist/chunk-JSV75WAY.js.map +0 -1
- package/dist/chunk-JZYHVNJR.js +0 -22
- package/dist/chunk-JZYHVNJR.js.map +0 -1
- package/dist/chunk-KT6HZNPV.js +0 -36
- package/dist/chunk-KT6HZNPV.js.map +0 -1
- package/dist/chunk-KW2W5KVS.mjs +0 -22
- package/dist/chunk-KW2W5KVS.mjs.map +0 -1
- package/dist/chunk-LA5LU5UP.js +0 -225
- package/dist/chunk-LA5LU5UP.js.map +0 -1
- package/dist/chunk-LSRJHTPL.js +0 -36
- package/dist/chunk-LSRJHTPL.js.map +0 -1
- package/dist/chunk-M3WJZUOE.js +0 -13
- package/dist/chunk-M3WJZUOE.js.map +0 -1
- package/dist/chunk-M5UNTGGK.mjs +0 -68
- package/dist/chunk-M5UNTGGK.mjs.map +0 -1
- package/dist/chunk-NQN42A2N.js +0 -348
- package/dist/chunk-NQN42A2N.js.map +0 -1
- package/dist/chunk-NYCKS3GG.js +0 -20
- package/dist/chunk-NYCKS3GG.js.map +0 -1
- package/dist/chunk-O2GHYEAE.mjs +0 -92
- package/dist/chunk-O2GHYEAE.mjs.map +0 -1
- package/dist/chunk-OGAE7BVQ.js +0 -67
- package/dist/chunk-OGAE7BVQ.js.map +0 -1
- package/dist/chunk-OMOZEGVZ.mjs +0 -22
- package/dist/chunk-OMOZEGVZ.mjs.map +0 -1
- package/dist/chunk-OMZ3FRPU.mjs +0 -65
- package/dist/chunk-OMZ3FRPU.mjs.map +0 -1
- package/dist/chunk-OOXU4LFW.js +0 -65
- package/dist/chunk-OOXU4LFW.js.map +0 -1
- package/dist/chunk-OSAFGMGH.mjs +0 -85
- package/dist/chunk-OSAFGMGH.mjs.map +0 -1
- package/dist/chunk-OXULVOBF.mjs +0 -144
- package/dist/chunk-OXULVOBF.mjs.map +0 -1
- package/dist/chunk-PONU4KJX.mjs.map +0 -1
- package/dist/chunk-PQA46YVG.mjs +0 -410
- package/dist/chunk-PQA46YVG.mjs.map +0 -1
- package/dist/chunk-Q6OMYVNW.js +0 -66
- package/dist/chunk-Q6OMYVNW.js.map +0 -1
- package/dist/chunk-Q7AHHFC3.mjs +0 -20
- package/dist/chunk-Q7AHHFC3.mjs.map +0 -1
- package/dist/chunk-QSMGACTW.js +0 -51
- package/dist/chunk-QSMGACTW.js.map +0 -1
- package/dist/chunk-QVQ7WDJS.mjs +0 -196
- package/dist/chunk-QVQ7WDJS.mjs.map +0 -1
- package/dist/chunk-QZRBNYW2.js.map +0 -1
- package/dist/chunk-R6QPBFZD.mjs +0 -63
- package/dist/chunk-R6QPBFZD.mjs.map +0 -1
- package/dist/chunk-RALJR5ZU.js +0 -80
- package/dist/chunk-RALJR5ZU.js.map +0 -1
- package/dist/chunk-S2UWK4HL.mjs +0 -36
- package/dist/chunk-S2UWK4HL.mjs.map +0 -1
- package/dist/chunk-SIXSSID3.mjs +0 -43
- package/dist/chunk-SIXSSID3.mjs.map +0 -1
- package/dist/chunk-SNKGSX5I.js +0 -42
- package/dist/chunk-SNKGSX5I.js.map +0 -1
- package/dist/chunk-SQXVLXIS.mjs +0 -90
- package/dist/chunk-SQXVLXIS.mjs.map +0 -1
- package/dist/chunk-TIAQGDR2.js +0 -34
- package/dist/chunk-TIAQGDR2.js.map +0 -1
- package/dist/chunk-U47MQ6CS.mjs +0 -67
- package/dist/chunk-U47MQ6CS.mjs.map +0 -1
- package/dist/chunk-UQ633TEF.mjs +0 -54
- package/dist/chunk-UQ633TEF.mjs.map +0 -1
- package/dist/chunk-UTXV7U7Z.js +0 -92
- package/dist/chunk-UTXV7U7Z.js.map +0 -1
- package/dist/chunk-W2BNKVWJ.mjs +0 -36
- package/dist/chunk-W2BNKVWJ.mjs.map +0 -1
- package/dist/chunk-WG7MPZXJ.mjs +0 -663
- package/dist/chunk-WG7MPZXJ.mjs.map +0 -1
- package/dist/chunk-WIXX2IDN.mjs +0 -101
- package/dist/chunk-WIXX2IDN.mjs.map +0 -1
- package/dist/chunk-WQRATXQU.mjs +0 -80
- package/dist/chunk-WQRATXQU.mjs.map +0 -1
- package/dist/chunk-WV4U2PPY.js +0 -68
- package/dist/chunk-WV4U2PPY.js.map +0 -1
- package/dist/chunk-WZTRPR6A.js +0 -43
- package/dist/chunk-WZTRPR6A.js.map +0 -1
- package/dist/chunk-XGULH63G.mjs +0 -1672
- package/dist/chunk-XGULH63G.mjs.map +0 -1
- package/dist/chunk-YBLYQYXL.js +0 -22
- package/dist/chunk-YBLYQYXL.js.map +0 -1
- package/dist/chunk-YK55ZGRQ.mjs +0 -257
- package/dist/chunk-YK55ZGRQ.mjs.map +0 -1
- package/dist/chunk-YKDTIJF2.js +0 -144
- package/dist/chunk-YKDTIJF2.js.map +0 -1
- package/dist/chunk-YKWXS2BM.js.map +0 -1
- package/dist/chunk-YOSDU6PV.mjs +0 -34
- package/dist/chunk-YOSDU6PV.mjs.map +0 -1
- package/dist/chunk-YP4LDCP6.mjs +0 -277
- package/dist/chunk-YP4LDCP6.mjs.map +0 -1
- package/dist/chunk-ZA5BH7IZ.js +0 -277
- package/dist/chunk-ZA5BH7IZ.js.map +0 -1
- package/dist/chunk-ZFAAOZZM.js +0 -96
- package/dist/chunk-ZFAAOZZM.js.map +0 -1
- package/dist/chunk-ZFFJYYDN.js +0 -508
- package/dist/chunk-ZFFJYYDN.js.map +0 -1
- package/dist/chunk-ZX6VUKK5.js +0 -63
- package/dist/chunk-ZX6VUKK5.js.map +0 -1
- package/dist/cli/index.d.mts +0 -1
- package/dist/cli/index.d.ts +0 -1
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/index.mjs +0 -1336
- package/dist/cli/index.mjs.map +0 -1
- package/dist/config-DPFYZQUU.js +0 -96
- package/dist/config-DPFYZQUU.js.map +0 -1
- package/dist/config-DXWUTPTA.mjs +0 -96
- package/dist/config-DXWUTPTA.mjs.map +0 -1
- package/dist/create-2MUVHIRR.js +0 -49
- package/dist/create-2MUVHIRR.js.map +0 -1
- package/dist/create-2VO6N4CY.js +0 -50
- package/dist/create-2VO6N4CY.js.map +0 -1
- package/dist/create-5HLREIKR.mjs +0 -52
- package/dist/create-5HLREIKR.mjs.map +0 -1
- package/dist/create-7WWQNO2D.mjs +0 -88
- package/dist/create-7WWQNO2D.mjs.map +0 -1
- package/dist/create-APC6WMHS.js +0 -72
- package/dist/create-APC6WMHS.js.map +0 -1
- package/dist/create-B6AZP3AH.js +0 -42
- package/dist/create-B6AZP3AH.js.map +0 -1
- package/dist/create-BWIIJPYN.js +0 -88
- package/dist/create-BWIIJPYN.js.map +0 -1
- package/dist/create-C7HS7DAN.js +0 -91
- package/dist/create-C7HS7DAN.js.map +0 -1
- package/dist/create-CENOO2Z5.mjs +0 -94
- package/dist/create-CENOO2Z5.mjs.map +0 -1
- package/dist/create-CSENTPZ7.mjs +0 -88
- package/dist/create-CSENTPZ7.mjs.map +0 -1
- package/dist/create-F564PPYR.mjs +0 -72
- package/dist/create-F564PPYR.mjs.map +0 -1
- package/dist/create-FEVRMAGI.js +0 -75
- package/dist/create-FEVRMAGI.js.map +0 -1
- package/dist/create-FK6ZCXCA.js +0 -92
- package/dist/create-FK6ZCXCA.js.map +0 -1
- package/dist/create-G5KF3LVC.mjs +0 -50
- package/dist/create-G5KF3LVC.mjs.map +0 -1
- package/dist/create-HL6BPJBM.mjs +0 -71
- package/dist/create-HL6BPJBM.mjs.map +0 -1
- package/dist/create-KFDWNSGC.mjs +0 -87
- package/dist/create-KFDWNSGC.mjs.map +0 -1
- package/dist/create-KTPZZ7NV.mjs +0 -75
- package/dist/create-KTPZZ7NV.mjs.map +0 -1
- package/dist/create-LAKPCRNY.mjs +0 -92
- package/dist/create-LAKPCRNY.mjs.map +0 -1
- package/dist/create-LFU7Z6DS.mjs +0 -42
- package/dist/create-LFU7Z6DS.mjs.map +0 -1
- package/dist/create-MI7MQLN6.mjs +0 -48
- package/dist/create-MI7MQLN6.mjs.map +0 -1
- package/dist/create-OMO3TETI.mjs +0 -23
- package/dist/create-OMO3TETI.mjs.map +0 -1
- package/dist/create-OWODQWNJ.js +0 -48
- package/dist/create-OWODQWNJ.js.map +0 -1
- package/dist/create-POGAVC3B.mjs +0 -49
- package/dist/create-POGAVC3B.mjs.map +0 -1
- package/dist/create-QJLKTHQ6.mjs +0 -58
- package/dist/create-QJLKTHQ6.mjs.map +0 -1
- package/dist/create-R57TZY3Y.js +0 -94
- package/dist/create-R57TZY3Y.js.map +0 -1
- package/dist/create-RIHQJENZ.js +0 -71
- package/dist/create-RIHQJENZ.js.map +0 -1
- package/dist/create-UOIUDY25.js +0 -88
- package/dist/create-UOIUDY25.js.map +0 -1
- package/dist/create-URUJVBUC.js +0 -87
- package/dist/create-URUJVBUC.js.map +0 -1
- package/dist/create-VEK55UDK.mjs +0 -43
- package/dist/create-VEK55UDK.mjs.map +0 -1
- package/dist/create-VKXRDN5O.js +0 -52
- package/dist/create-VKXRDN5O.js.map +0 -1
- package/dist/create-XHAKNOTS.mjs +0 -91
- package/dist/create-XHAKNOTS.mjs.map +0 -1
- package/dist/create-YJHDG2ZO.js +0 -23
- package/dist/create-YJHDG2ZO.js.map +0 -1
- package/dist/create-Z5CM76ZW.js +0 -43
- package/dist/create-Z5CM76ZW.js.map +0 -1
- package/dist/create-Z6JTQNL6.js +0 -58
- package/dist/create-Z6JTQNL6.js.map +0 -1
- package/dist/delete-6BINMYZI.mjs +0 -52
- package/dist/delete-6BINMYZI.mjs.map +0 -1
- package/dist/delete-6T5CCDFJ.js +0 -42
- package/dist/delete-6T5CCDFJ.js.map +0 -1
- package/dist/delete-6UHWYVNZ.js +0 -52
- package/dist/delete-6UHWYVNZ.js.map +0 -1
- package/dist/delete-A5RWDQKJ.js +0 -52
- package/dist/delete-A5RWDQKJ.js.map +0 -1
- package/dist/delete-A7ZWGQPR.mjs +0 -59
- package/dist/delete-A7ZWGQPR.mjs.map +0 -1
- package/dist/delete-B5G7GAHY.mjs +0 -44
- package/dist/delete-B5G7GAHY.mjs.map +0 -1
- package/dist/delete-BGCVEG3C.js +0 -61
- package/dist/delete-BGCVEG3C.js.map +0 -1
- package/dist/delete-BYCIZOZG.js +0 -39
- package/dist/delete-BYCIZOZG.js.map +0 -1
- package/dist/delete-E5VYCRYX.mjs +0 -39
- package/dist/delete-E5VYCRYX.mjs.map +0 -1
- package/dist/delete-EK6PUMYW.js +0 -52
- package/dist/delete-EK6PUMYW.js.map +0 -1
- package/dist/delete-ERB4LGWZ.mjs +0 -41
- package/dist/delete-ERB4LGWZ.mjs.map +0 -1
- package/dist/delete-FD3IISGJ.js +0 -38
- package/dist/delete-FD3IISGJ.js.map +0 -1
- package/dist/delete-FE3MRFPM.mjs +0 -52
- package/dist/delete-FE3MRFPM.mjs.map +0 -1
- package/dist/delete-FP5MMDDA.mjs +0 -61
- package/dist/delete-FP5MMDDA.mjs.map +0 -1
- package/dist/delete-FWKI62NT.mjs +0 -39
- package/dist/delete-FWKI62NT.mjs.map +0 -1
- package/dist/delete-HLKQDPTI.js +0 -52
- package/dist/delete-HLKQDPTI.js.map +0 -1
- package/dist/delete-KAVDMRQX.mjs +0 -59
- package/dist/delete-KAVDMRQX.mjs.map +0 -1
- package/dist/delete-M4ZCKWOU.mjs +0 -52
- package/dist/delete-M4ZCKWOU.mjs.map +0 -1
- package/dist/delete-NGPOOTEX.mjs +0 -42
- package/dist/delete-NGPOOTEX.mjs.map +0 -1
- package/dist/delete-NN4CSTK5.js +0 -44
- package/dist/delete-NN4CSTK5.js.map +0 -1
- package/dist/delete-NRW5THMB.js +0 -39
- package/dist/delete-NRW5THMB.js.map +0 -1
- package/dist/delete-SZG6DJUR.mjs +0 -52
- package/dist/delete-SZG6DJUR.mjs.map +0 -1
- package/dist/delete-UMDNW3RR.mjs +0 -59
- package/dist/delete-UMDNW3RR.mjs.map +0 -1
- package/dist/delete-UVGITJ2L.mjs +0 -38
- package/dist/delete-UVGITJ2L.mjs.map +0 -1
- package/dist/delete-VBP7TKUH.js +0 -41
- package/dist/delete-VBP7TKUH.js.map +0 -1
- package/dist/delete-Y3DTH336.js +0 -59
- package/dist/delete-Y3DTH336.js.map +0 -1
- package/dist/delete-ZM3GFW2Z.js +0 -59
- package/dist/delete-ZM3GFW2Z.js.map +0 -1
- package/dist/delete-ZSN6PWGA.js +0 -59
- package/dist/delete-ZSN6PWGA.js.map +0 -1
- package/dist/docs-23TMQCLZ.js +0 -77
- package/dist/docs-23TMQCLZ.js.map +0 -1
- package/dist/docs-YG2DQVHD.mjs +0 -77
- package/dist/docs-YG2DQVHD.mjs.map +0 -1
- package/dist/download-B4Z4TAXZ.js +0 -100
- package/dist/download-B4Z4TAXZ.js.map +0 -1
- package/dist/download-JPL3BO4H.mjs +0 -100
- package/dist/download-JPL3BO4H.mjs.map +0 -1
- package/dist/duplicate-IYUSDPY2.js +0 -45
- package/dist/duplicate-IYUSDPY2.js.map +0 -1
- package/dist/duplicate-OWG7P745.mjs +0 -45
- package/dist/duplicate-OWG7P745.mjs.map +0 -1
- package/dist/export-4A6ILAPM.mjs +0 -103
- package/dist/export-4A6ILAPM.mjs.map +0 -1
- package/dist/export-BUFJDFWC.js +0 -103
- package/dist/export-BUFJDFWC.js.map +0 -1
- package/dist/get-37E7GAV3.js +0 -76
- package/dist/get-37E7GAV3.js.map +0 -1
- package/dist/get-4D2MVW4T.js +0 -49
- package/dist/get-4D2MVW4T.js.map +0 -1
- package/dist/get-576OERBE.mjs +0 -66
- package/dist/get-576OERBE.mjs.map +0 -1
- package/dist/get-5GQP5EDN.mjs +0 -71
- package/dist/get-5GQP5EDN.mjs.map +0 -1
- package/dist/get-6DKM4MZL.mjs +0 -70
- package/dist/get-6DKM4MZL.mjs.map +0 -1
- package/dist/get-BO7KWXNS.js +0 -70
- package/dist/get-BO7KWXNS.js.map +0 -1
- package/dist/get-BQH2FJBV.mjs +0 -49
- package/dist/get-BQH2FJBV.mjs.map +0 -1
- package/dist/get-DCEQN75Y.mjs +0 -71
- package/dist/get-DCEQN75Y.mjs.map +0 -1
- package/dist/get-DEFHJ7CN.js +0 -94
- package/dist/get-DEFHJ7CN.js.map +0 -1
- package/dist/get-DX5U344V.mjs +0 -149
- package/dist/get-DX5U344V.mjs.map +0 -1
- package/dist/get-EWYM6FYK.js +0 -54
- package/dist/get-EWYM6FYK.js.map +0 -1
- package/dist/get-HY3N72VT.js +0 -71
- package/dist/get-HY3N72VT.js.map +0 -1
- package/dist/get-I2CSBUKB.js +0 -56
- package/dist/get-I2CSBUKB.js.map +0 -1
- package/dist/get-I6EY4PC6.mjs +0 -54
- package/dist/get-I6EY4PC6.mjs.map +0 -1
- package/dist/get-JDHZ2YUC.mjs +0 -85
- package/dist/get-JDHZ2YUC.mjs.map +0 -1
- package/dist/get-KSATLDNX.mjs +0 -56
- package/dist/get-KSATLDNX.mjs.map +0 -1
- package/dist/get-L5HUN5CE.mjs +0 -94
- package/dist/get-L5HUN5CE.mjs.map +0 -1
- package/dist/get-LIQYXM3J.mjs +0 -76
- package/dist/get-LIQYXM3J.mjs.map +0 -1
- package/dist/get-NICBHRKG.js +0 -51
- package/dist/get-NICBHRKG.js.map +0 -1
- package/dist/get-NXV4JPXT.mjs +0 -51
- package/dist/get-NXV4JPXT.mjs.map +0 -1
- package/dist/get-OH6XFEO7.js +0 -149
- package/dist/get-OH6XFEO7.js.map +0 -1
- package/dist/get-OW77HE3C.mjs +0 -67
- package/dist/get-OW77HE3C.mjs.map +0 -1
- package/dist/get-P5MUOCUP.js +0 -68
- package/dist/get-P5MUOCUP.js.map +0 -1
- package/dist/get-PHEE7JVL.mjs +0 -71
- package/dist/get-PHEE7JVL.mjs.map +0 -1
- package/dist/get-QYIM3DCN.mjs +0 -68
- package/dist/get-QYIM3DCN.mjs.map +0 -1
- package/dist/get-R6F56IVZ.js +0 -67
- package/dist/get-R6F56IVZ.js.map +0 -1
- package/dist/get-RWF3UWIF.js +0 -71
- package/dist/get-RWF3UWIF.js.map +0 -1
- package/dist/get-T6TAL2GB.js +0 -52
- package/dist/get-T6TAL2GB.js.map +0 -1
- package/dist/get-TNDPILF3.js +0 -85
- package/dist/get-TNDPILF3.js.map +0 -1
- package/dist/get-UV3YT4VH.js +0 -66
- package/dist/get-UV3YT4VH.js.map +0 -1
- package/dist/get-X4Q4RZQC.mjs +0 -52
- package/dist/get-X4Q4RZQC.mjs.map +0 -1
- package/dist/get-XIK4FEGG.js +0 -71
- package/dist/get-XIK4FEGG.js.map +0 -1
- package/dist/health-LCGP7UDT.js +0 -73
- package/dist/health-LCGP7UDT.js.map +0 -1
- package/dist/health-MCMRR6RQ.mjs +0 -73
- package/dist/health-MCMRR6RQ.mjs.map +0 -1
- package/dist/ingestion-templates-7TLETXIF.mjs +0 -169
- package/dist/ingestion-templates-7TLETXIF.mjs.map +0 -1
- package/dist/ingestion-templates-AT5AKWJB.js +0 -169
- package/dist/ingestion-templates-AT5AKWJB.js.map +0 -1
- package/dist/init-SQ5UUFDM.js +0 -16
- package/dist/init-SQ5UUFDM.js.map +0 -1
- package/dist/init-UGSR2T2P.mjs +0 -16
- package/dist/init-UGSR2T2P.mjs.map +0 -1
- package/dist/init-shell-2JQCBGMG.mjs +0 -71
- package/dist/init-shell-2JQCBGMG.mjs.map +0 -1
- package/dist/init-shell-UDTYTWJ4.js +0 -71
- package/dist/init-shell-UDTYTWJ4.js.map +0 -1
- package/dist/install-JNBCGN7Q.mjs +0 -191
- package/dist/install-JNBCGN7Q.mjs.map +0 -1
- package/dist/install-VBJKW5WP.js +0 -191
- package/dist/install-VBJKW5WP.js.map +0 -1
- package/dist/list-2ALO3KFG.js +0 -87
- package/dist/list-2ALO3KFG.js.map +0 -1
- package/dist/list-2YGHM2AD.mjs +0 -76
- package/dist/list-2YGHM2AD.mjs.map +0 -1
- package/dist/list-3XJ7VZN4.mjs +0 -75
- package/dist/list-3XJ7VZN4.mjs.map +0 -1
- package/dist/list-47FO2DBS.js +0 -80
- package/dist/list-47FO2DBS.js.map +0 -1
- package/dist/list-4JFVZU6U.mjs +0 -78
- package/dist/list-4JFVZU6U.mjs.map +0 -1
- package/dist/list-5DNRGKML.mjs +0 -80
- package/dist/list-5DNRGKML.mjs.map +0 -1
- package/dist/list-6CPPEJQV.js +0 -75
- package/dist/list-6CPPEJQV.js.map +0 -1
- package/dist/list-6UYNGBNA.mjs +0 -75
- package/dist/list-6UYNGBNA.mjs.map +0 -1
- package/dist/list-7F3TLLLA.js +0 -85
- package/dist/list-7F3TLLLA.js.map +0 -1
- package/dist/list-AVYXRPYR.mjs +0 -53
- package/dist/list-AVYXRPYR.mjs.map +0 -1
- package/dist/list-B5QJP7XO.mjs +0 -122
- package/dist/list-B5QJP7XO.mjs.map +0 -1
- package/dist/list-BI6VDR3L.mjs +0 -80
- package/dist/list-BI6VDR3L.mjs.map +0 -1
- package/dist/list-BIXZNQNL.mjs +0 -90
- package/dist/list-BIXZNQNL.mjs.map +0 -1
- package/dist/list-E2NKP4RN.mjs +0 -71
- package/dist/list-E2NKP4RN.mjs.map +0 -1
- package/dist/list-EX74E4W3.js +0 -82
- package/dist/list-EX74E4W3.js.map +0 -1
- package/dist/list-F7RK6OGO.js +0 -71
- package/dist/list-F7RK6OGO.js.map +0 -1
- package/dist/list-FQVXBMOV.js +0 -82
- package/dist/list-FQVXBMOV.js.map +0 -1
- package/dist/list-FTAHO7RS.js +0 -53
- package/dist/list-FTAHO7RS.js.map +0 -1
- package/dist/list-HJFLTMZZ.js +0 -80
- package/dist/list-HJFLTMZZ.js.map +0 -1
- package/dist/list-HZCZZBHB.js +0 -83
- package/dist/list-HZCZZBHB.js.map +0 -1
- package/dist/list-IIUX33VL.mjs +0 -86
- package/dist/list-IIUX33VL.mjs.map +0 -1
- package/dist/list-JFASUTLY.js +0 -78
- package/dist/list-JFASUTLY.js.map +0 -1
- package/dist/list-KJIOIAVI.mjs +0 -80
- package/dist/list-KJIOIAVI.mjs.map +0 -1
- package/dist/list-LKNXTUMI.js +0 -104
- package/dist/list-LKNXTUMI.js.map +0 -1
- package/dist/list-M34E5BJ5.js +0 -80
- package/dist/list-M34E5BJ5.js.map +0 -1
- package/dist/list-MX4GYY6P.mjs +0 -87
- package/dist/list-MX4GYY6P.mjs.map +0 -1
- package/dist/list-O5SCIB3L.js +0 -75
- package/dist/list-O5SCIB3L.js.map +0 -1
- package/dist/list-O6OJ5XHC.mjs +0 -72
- package/dist/list-O6OJ5XHC.mjs.map +0 -1
- package/dist/list-ODC5L7LD.mjs +0 -83
- package/dist/list-ODC5L7LD.mjs.map +0 -1
- package/dist/list-Q5WBWW4Q.mjs +0 -82
- package/dist/list-Q5WBWW4Q.mjs.map +0 -1
- package/dist/list-QA563QDB.js +0 -90
- package/dist/list-QA563QDB.js.map +0 -1
- package/dist/list-RJFCSUUQ.mjs +0 -111
- package/dist/list-RJFCSUUQ.mjs.map +0 -1
- package/dist/list-RMHLZBQG.js +0 -76
- package/dist/list-RMHLZBQG.js.map +0 -1
- package/dist/list-SRYZRJCV.js +0 -111
- package/dist/list-SRYZRJCV.js.map +0 -1
- package/dist/list-TOSZ7BU7.js +0 -86
- package/dist/list-TOSZ7BU7.js.map +0 -1
- package/dist/list-UQQ2PAU3.mjs +0 -104
- package/dist/list-UQQ2PAU3.mjs.map +0 -1
- package/dist/list-V2WO7LLU.js +0 -72
- package/dist/list-V2WO7LLU.js.map +0 -1
- package/dist/list-VA5A3CCK.mjs +0 -75
- package/dist/list-VA5A3CCK.mjs.map +0 -1
- package/dist/list-X6EIZ5MP.js +0 -75
- package/dist/list-X6EIZ5MP.js.map +0 -1
- package/dist/list-YUYYYQ7E.js +0 -122
- package/dist/list-YUYYYQ7E.js.map +0 -1
- package/dist/list-Z4GK3RXW.js +0 -78
- package/dist/list-Z4GK3RXW.js.map +0 -1
- package/dist/list-ZBKYVBPN.mjs +0 -85
- package/dist/list-ZBKYVBPN.mjs.map +0 -1
- package/dist/list-ZDLAHVOP.mjs +0 -78
- package/dist/list-ZDLAHVOP.mjs.map +0 -1
- package/dist/list-ZONPFTHT.mjs +0 -82
- package/dist/list-ZONPFTHT.mjs.map +0 -1
- package/dist/login-UWJ4SQ3T.mjs +0 -279
- package/dist/login-UWJ4SQ3T.mjs.map +0 -1
- package/dist/login-Y3TEPZOC.js +0 -279
- package/dist/login-Y3TEPZOC.js.map +0 -1
- package/dist/logout-RTWQU22E.mjs +0 -181
- package/dist/logout-RTWQU22E.mjs.map +0 -1
- package/dist/logout-TXOAFCK7.js +0 -181
- package/dist/logout-TXOAFCK7.js.map +0 -1
- package/dist/open-2IGFGDDB.mjs +0 -47
- package/dist/open-2IGFGDDB.mjs.map +0 -1
- package/dist/open-TCBDPKWM.js +0 -47
- package/dist/open-TCBDPKWM.js.map +0 -1
- package/dist/pull-3MXPXKVF.mjs +0 -27
- package/dist/pull-3MXPXKVF.mjs.map +0 -1
- package/dist/pull-5RX2YX5P.js +0 -27
- package/dist/pull-5RX2YX5P.js.map +0 -1
- package/dist/push-7L3NXCCJ.mjs +0 -27
- package/dist/push-7L3NXCCJ.mjs.map +0 -1
- package/dist/push-QPS47QAN.js +0 -27
- package/dist/push-QPS47QAN.js.map +0 -1
- package/dist/query-2PAEPPLR.js +0 -122
- package/dist/query-2PAEPPLR.js.map +0 -1
- package/dist/query-FJ4JJLRH.mjs +0 -122
- package/dist/query-FJ4JJLRH.mjs.map +0 -1
- package/dist/records-add-K6ZRY3MM.mjs +0 -98
- package/dist/records-add-K6ZRY3MM.mjs.map +0 -1
- package/dist/records-add-OQK2SWSP.js +0 -98
- package/dist/records-add-OQK2SWSP.js.map +0 -1
- package/dist/records-delete-DPNRLQRU.mjs +0 -46
- package/dist/records-delete-DPNRLQRU.mjs.map +0 -1
- package/dist/records-delete-UC3XJNIF.js +0 -46
- package/dist/records-delete-UC3XJNIF.js.map +0 -1
- package/dist/records-list-AC7ADD4R.js +0 -89
- package/dist/records-list-AC7ADD4R.js.map +0 -1
- package/dist/records-list-EEDFGR5M.mjs +0 -89
- package/dist/records-list-EEDFGR5M.mjs.map +0 -1
- package/dist/records-update-R5G7AOMD.js +0 -53
- package/dist/records-update-R5G7AOMD.js.map +0 -1
- package/dist/records-update-V23XILMF.mjs +0 -53
- package/dist/records-update-V23XILMF.mjs.map +0 -1
- package/dist/remove-JS3XWII2.mjs +0 -114
- package/dist/remove-JS3XWII2.mjs.map +0 -1
- package/dist/remove-QU7WDHPI.js +0 -114
- package/dist/remove-QU7WDHPI.js.map +0 -1
- package/dist/rename-AQZWJOSA.js +0 -42
- package/dist/rename-AQZWJOSA.js.map +0 -1
- package/dist/rename-NX4OMJDP.mjs +0 -42
- package/dist/rename-NX4OMJDP.mjs.map +0 -1
- package/dist/request-increase-FLFEPGIC.js +0 -37
- package/dist/request-increase-FLFEPGIC.js.map +0 -1
- package/dist/request-increase-NHM27JXH.mjs +0 -37
- package/dist/request-increase-NHM27JXH.mjs.map +0 -1
- package/dist/restore-HTAPXIPP.js +0 -73
- package/dist/restore-HTAPXIPP.js.map +0 -1
- package/dist/restore-R5LY5MWO.mjs +0 -73
- package/dist/restore-R5LY5MWO.mjs.map +0 -1
- package/dist/revoke-2JIUV7JE.mjs +0 -41
- package/dist/revoke-2JIUV7JE.mjs.map +0 -1
- package/dist/revoke-GH3YEBRW.js +0 -44
- package/dist/revoke-GH3YEBRW.js.map +0 -1
- package/dist/revoke-MS5OZQHS.js +0 -41
- package/dist/revoke-MS5OZQHS.js.map +0 -1
- package/dist/revoke-TQJVF3BL.mjs +0 -44
- package/dist/revoke-TQJVF3BL.mjs.map +0 -1
- package/dist/rotate-QUP62JOC.mjs +0 -52
- package/dist/rotate-QUP62JOC.mjs.map +0 -1
- package/dist/rotate-U3RJTWOO.js +0 -52
- package/dist/rotate-U3RJTWOO.js.map +0 -1
- package/dist/run-2KC3XYCD.js +0 -77
- package/dist/run-2KC3XYCD.js.map +0 -1
- package/dist/run-35JPAOLO.mjs +0 -83
- package/dist/run-35JPAOLO.mjs.map +0 -1
- package/dist/run-5YPCH5US.mjs +0 -77
- package/dist/run-5YPCH5US.mjs.map +0 -1
- package/dist/run-6BUAGYXY.mjs +0 -142
- package/dist/run-6BUAGYXY.mjs.map +0 -1
- package/dist/run-BB27OOPE.js +0 -131
- package/dist/run-BB27OOPE.js.map +0 -1
- package/dist/run-BPTFP3HA.mjs +0 -144
- package/dist/run-BPTFP3HA.mjs.map +0 -1
- package/dist/run-DVPUVKTV.mjs +0 -131
- package/dist/run-DVPUVKTV.mjs.map +0 -1
- package/dist/run-GJEOP5LP.js +0 -144
- package/dist/run-GJEOP5LP.js.map +0 -1
- package/dist/run-JLC2AGGB.js +0 -83
- package/dist/run-JLC2AGGB.js.map +0 -1
- package/dist/run-P5B7FK6K.js +0 -142
- package/dist/run-P5B7FK6K.js.map +0 -1
- package/dist/search-FMFV6U6P.mjs +0 -108
- package/dist/search-FMFV6U6P.mjs.map +0 -1
- package/dist/search-LEF4NLQJ.js +0 -108
- package/dist/search-LEF4NLQJ.js.map +0 -1
- package/dist/set-7Q2IUUPV.mjs +0 -105
- package/dist/set-7Q2IUUPV.mjs.map +0 -1
- package/dist/set-DYXQGJNE.js +0 -59
- package/dist/set-DYXQGJNE.js.map +0 -1
- package/dist/set-FVXIBW4X.js +0 -105
- package/dist/set-FVXIBW4X.js.map +0 -1
- package/dist/set-PMA5UWDK.mjs +0 -59
- package/dist/set-PMA5UWDK.mjs.map +0 -1
- package/dist/status-DS55UJ7O.mjs +0 -153
- package/dist/status-DS55UJ7O.mjs.map +0 -1
- package/dist/status-GSPWZ255.mjs +0 -56
- package/dist/status-GSPWZ255.mjs.map +0 -1
- package/dist/status-KH64EWPP.js +0 -153
- package/dist/status-KH64EWPP.js.map +0 -1
- package/dist/status-M4GI2HR3.js +0 -56
- package/dist/status-M4GI2HR3.js.map +0 -1
- package/dist/status-OAD2U66Z.js +0 -122
- package/dist/status-OAD2U66Z.js.map +0 -1
- package/dist/status-U3EPMBTN.mjs +0 -122
- package/dist/status-U3EPMBTN.mjs.map +0 -1
- package/dist/sync-PKDE2D7V.js +0 -132
- package/dist/sync-PKDE2D7V.js.map +0 -1
- package/dist/sync-XV5HX5TO.mjs +0 -132
- package/dist/sync-XV5HX5TO.mjs.map +0 -1
- package/dist/tail-CKK6GFNI.js +0 -108
- package/dist/tail-CKK6GFNI.js.map +0 -1
- package/dist/tail-D26CEKSH.mjs +0 -108
- package/dist/tail-D26CEKSH.mjs.map +0 -1
- package/dist/unset-FGAQM4WA.js +0 -107
- package/dist/unset-FGAQM4WA.js.map +0 -1
- package/dist/unset-TVSHRR64.mjs +0 -107
- package/dist/unset-TVSHRR64.mjs.map +0 -1
- package/dist/update-337XCLM7.mjs +0 -65
- package/dist/update-337XCLM7.mjs.map +0 -1
- package/dist/update-43JHGSN7.js +0 -106
- package/dist/update-43JHGSN7.js.map +0 -1
- package/dist/update-4KGPCVCD.js +0 -71
- package/dist/update-4KGPCVCD.js.map +0 -1
- package/dist/update-5DIMZPJB.mjs +0 -71
- package/dist/update-5DIMZPJB.mjs.map +0 -1
- package/dist/update-5WVIKR5E.js +0 -48
- package/dist/update-5WVIKR5E.js.map +0 -1
- package/dist/update-AAZVLFRJ.js +0 -75
- package/dist/update-AAZVLFRJ.js.map +0 -1
- package/dist/update-APD7MSPV.js +0 -61
- package/dist/update-APD7MSPV.js.map +0 -1
- package/dist/update-AR7L7TOZ.js +0 -48
- package/dist/update-AR7L7TOZ.js.map +0 -1
- package/dist/update-C3I3BHWG.js +0 -63
- package/dist/update-C3I3BHWG.js.map +0 -1
- package/dist/update-CDBNRXSO.mjs +0 -106
- package/dist/update-CDBNRXSO.mjs.map +0 -1
- package/dist/update-CXYYWVNO.mjs +0 -75
- package/dist/update-CXYYWVNO.mjs.map +0 -1
- package/dist/update-DUJU3A4R.mjs +0 -48
- package/dist/update-DUJU3A4R.mjs.map +0 -1
- package/dist/update-E3GH3WEX.mjs +0 -83
- package/dist/update-E3GH3WEX.mjs.map +0 -1
- package/dist/update-HHGQ2DVM.js +0 -83
- package/dist/update-HHGQ2DVM.js.map +0 -1
- package/dist/update-IFDJZ6LW.js +0 -66
- package/dist/update-IFDJZ6LW.js.map +0 -1
- package/dist/update-JEGVDVSK.js +0 -51
- package/dist/update-JEGVDVSK.js.map +0 -1
- package/dist/update-JL3MKZXC.mjs +0 -66
- package/dist/update-JL3MKZXC.mjs.map +0 -1
- package/dist/update-JUTNNHSA.mjs +0 -51
- package/dist/update-JUTNNHSA.mjs.map +0 -1
- package/dist/update-MBBSJQJL.mjs +0 -79
- package/dist/update-MBBSJQJL.mjs.map +0 -1
- package/dist/update-NOYJVXCB.mjs +0 -63
- package/dist/update-NOYJVXCB.mjs.map +0 -1
- package/dist/update-OFUQFYBD.js +0 -76
- package/dist/update-OFUQFYBD.js.map +0 -1
- package/dist/update-OZC2S3BC.js +0 -79
- package/dist/update-OZC2S3BC.js.map +0 -1
- package/dist/update-P4PNDOMU.mjs +0 -63
- package/dist/update-P4PNDOMU.mjs.map +0 -1
- package/dist/update-RJFENG32.mjs +0 -48
- package/dist/update-RJFENG32.mjs.map +0 -1
- package/dist/update-W2RQW53I.js +0 -65
- package/dist/update-W2RQW53I.js.map +0 -1
- package/dist/update-WFGCL4JS.mjs +0 -61
- package/dist/update-WFGCL4JS.mjs.map +0 -1
- package/dist/update-WTIR2BYE.js +0 -63
- package/dist/update-WTIR2BYE.js.map +0 -1
- package/dist/update-X7J6WRG3.mjs +0 -76
- package/dist/update-X7J6WRG3.mjs.map +0 -1
- package/dist/upload-7O3K4YAL.mjs +0 -80
- package/dist/upload-7O3K4YAL.mjs.map +0 -1
- package/dist/upload-DJA44RJ3.js +0 -80
- package/dist/upload-DJA44RJ3.js.map +0 -1
- package/dist/versions-2JD6EKCA.js +0 -85
- package/dist/versions-2JD6EKCA.js.map +0 -1
- package/dist/versions-HXI6GAD2.mjs +0 -85
- package/dist/versions-HXI6GAD2.mjs.map +0 -1
- package/dist/whoami-EI52YRCH.js +0 -30
- package/dist/whoami-EI52YRCH.js.map +0 -1
- package/dist/whoami-KGRA4QEY.mjs +0 -30
- package/dist/whoami-KGRA4QEY.mjs.map +0 -1
- package/dist/wrap-LBMHL6N6.mjs +0 -33
- package/dist/wrap-LBMHL6N6.mjs.map +0 -1
- package/dist/wrap-O7DQWEVA.js +0 -33
- package/dist/wrap-O7DQWEVA.js.map +0 -1
- /package/dist/{chunk-RIPASL56.mjs.map → chunk-2O4ILSP5.mjs.map} +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export { F as FilterableBatchSpanProcessor, L as LangWatchExporter,
|
|
1
|
+
export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, b as LangWatchExporterOptions, c as LangWatchLogger, L as LangWatchTraceExporter, b as LangWatchTraceExporterOptions, S as SpanProcessingExcludeRule, g as getLangWatchLogger, d as getLangWatchLoggerFromProvider, a as getLangWatchTracer, e as getLangWatchTracerFromProvider } from '../implementation-Cv1hPZBQ.mjs';
|
|
2
2
|
import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';
|
|
3
|
-
import {
|
|
4
|
-
export {
|
|
5
|
-
import {
|
|
6
|
-
export { A as AddEvaluationParams, E as EvaluationStatus,
|
|
3
|
+
import { D as DataCaptureMode } from '../types-DLfhJb38.mjs';
|
|
4
|
+
export { a as DataCaptureConfig, b as DataCaptureContext, c as DataCaptureOptions, d as DataCapturePredicate } from '../types-DLfhJb38.mjs';
|
|
5
|
+
import { L as LangWatchSpan } from '../types-bfBzGB7S.mjs';
|
|
6
|
+
export { A as AddEvaluationParams, E as EvaluationStatus, e as EvaluationTimestamps, I as INPUT_OUTPUT_TYPES, f as InputOutputType, J as JsonSerializable, g as LangWatchSpanMetrics, h as LangWatchSpanOptions, i as LangWatchSpanRAGContext, j as LangWatchTracer, S as SimpleChatMessage, k as SpanType, l as emitEvaluationEvent, s as spanTypes } from '../types-bfBzGB7S.mjs';
|
|
7
7
|
import { Span } from '@opentelemetry/api';
|
|
8
|
-
export {
|
|
8
|
+
export { S as SemConvAttributeKey, a as SemConvAttributes, b as SemConvLogRecordAttributes, l as attributes } from '../types-VOZv9LYO.mjs';
|
|
9
9
|
import '@opentelemetry/sdk-trace-base';
|
|
10
10
|
import '@opentelemetry/exporter-trace-otlp-http';
|
|
11
11
|
import '@opentelemetry/core';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export { F as FilterableBatchSpanProcessor, L as LangWatchExporter,
|
|
1
|
+
export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, b as LangWatchExporterOptions, c as LangWatchLogger, L as LangWatchTraceExporter, b as LangWatchTraceExporterOptions, S as SpanProcessingExcludeRule, g as getLangWatchLogger, d as getLangWatchLoggerFromProvider, a as getLangWatchTracer, e as getLangWatchTracerFromProvider } from '../implementation-CMWs8g5L.js';
|
|
2
2
|
import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';
|
|
3
|
-
import {
|
|
4
|
-
export {
|
|
5
|
-
import {
|
|
6
|
-
export { A as AddEvaluationParams, E as EvaluationStatus,
|
|
3
|
+
import { D as DataCaptureMode } from '../types-DLfhJb38.js';
|
|
4
|
+
export { a as DataCaptureConfig, b as DataCaptureContext, c as DataCaptureOptions, d as DataCapturePredicate } from '../types-DLfhJb38.js';
|
|
5
|
+
import { L as LangWatchSpan } from '../types-D-yAkWoC.js';
|
|
6
|
+
export { A as AddEvaluationParams, E as EvaluationStatus, e as EvaluationTimestamps, I as INPUT_OUTPUT_TYPES, f as InputOutputType, J as JsonSerializable, g as LangWatchSpanMetrics, h as LangWatchSpanOptions, i as LangWatchSpanRAGContext, j as LangWatchTracer, S as SimpleChatMessage, k as SpanType, l as emitEvaluationEvent, s as spanTypes } from '../types-D-yAkWoC.js';
|
|
7
7
|
import { Span } from '@opentelemetry/api';
|
|
8
|
-
export {
|
|
8
|
+
export { S as SemConvAttributeKey, a as SemConvAttributes, b as SemConvLogRecordAttributes, l as attributes } from '../types-VOZv9LYO.js';
|
|
9
9
|
import '@opentelemetry/sdk-trace-base';
|
|
10
10
|
import '@opentelemetry/exporter-trace-otlp-http';
|
|
11
11
|
import '@opentelemetry/core';
|
|
@@ -1,31 +1,27 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkIUSLT65Zjs = require('../chunk-IUSLT65Z.js');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
var
|
|
11
|
+
var _chunkHBVGKWJKjs = require('../chunk-HBVGKWJK.js');
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
var
|
|
18
|
-
require('../chunk-WZTRPR6A.js');
|
|
19
|
-
require('../chunk-GPGJNBPP.js');
|
|
17
|
+
var _chunkEDWIKCYXjs = require('../chunk-EDWIKCYX.js');
|
|
20
18
|
|
|
21
19
|
|
|
22
20
|
|
|
23
21
|
|
|
24
|
-
var _chunkOOXU4LFWjs = require('../chunk-OOXU4LFW.js');
|
|
25
22
|
|
|
23
|
+
var _chunkTKSTXX3Djs = require('../chunk-TKSTXX3D.js');
|
|
26
24
|
|
|
27
|
-
var _chunkHDA25KWZjs = require('../chunk-HDA25KWZ.js');
|
|
28
|
-
require('../chunk-BRPEG3YQ.js');
|
|
29
25
|
|
|
30
26
|
|
|
31
27
|
|
|
@@ -42,6 +38,5 @@ require('../chunk-BRPEG3YQ.js');
|
|
|
42
38
|
|
|
43
39
|
|
|
44
40
|
|
|
45
|
-
|
|
46
|
-
exports.DataCapturePresets = _chunkNTRV2ICJjs.DataCapturePresets; exports.FilterableBatchSpanProcessor = _chunkNTRV2ICJjs.FilterableBatchSpanProcessor; exports.LangWatchExporter = _chunkYKWXS2BMjs.LangWatchTraceExporter; exports.LangWatchLogsExporter = _chunkYKWXS2BMjs.LangWatchLogsExporter; exports.LangWatchTraceExporter = _chunkYKWXS2BMjs.LangWatchTraceExporter; exports.attributes = _chunkHDA25KWZjs.attributes_exports; exports.createLangWatchSpan = _chunkQZRBNYW2js.createLangWatchSpan; exports.emitEvaluationEvent = _chunkQZRBNYW2js.emitEvaluationEvent; exports.getDataCaptureMode = _chunkOOXU4LFWjs.getDataCaptureMode; exports.getLangWatchLogger = _chunkYKWXS2BMjs.getLangWatchLogger; exports.getLangWatchLoggerFromProvider = _chunkYKWXS2BMjs.getLangWatchLoggerFromProvider; exports.getLangWatchTracer = _chunkQZRBNYW2js.getLangWatchTracer; exports.getLangWatchTracerFromProvider = _chunkQZRBNYW2js.getLangWatchTracerFromProvider; exports.shouldCaptureInput = _chunkOOXU4LFWjs.shouldCaptureInput; exports.shouldCaptureOutput = _chunkOOXU4LFWjs.shouldCaptureOutput; exports.spanTypes = _chunkQZRBNYW2js.spanTypes;
|
|
41
|
+
exports.DataCapturePresets = _chunkIUSLT65Zjs.DataCapturePresets; exports.FilterableBatchSpanProcessor = _chunkIUSLT65Zjs.FilterableBatchSpanProcessor; exports.LangWatchExporter = _chunkEDWIKCYXjs.LangWatchTraceExporter; exports.LangWatchLogsExporter = _chunkEDWIKCYXjs.LangWatchLogsExporter; exports.LangWatchTraceExporter = _chunkEDWIKCYXjs.LangWatchTraceExporter; exports.attributes = _chunkTKSTXX3Djs.attributes_exports; exports.createLangWatchSpan = _chunkHBVGKWJKjs.createLangWatchSpan; exports.emitEvaluationEvent = _chunkHBVGKWJKjs.emitEvaluationEvent; exports.getDataCaptureMode = _chunkTKSTXX3Djs.getDataCaptureMode; exports.getLangWatchLogger = _chunkEDWIKCYXjs.getLangWatchLogger; exports.getLangWatchLoggerFromProvider = _chunkEDWIKCYXjs.getLangWatchLoggerFromProvider; exports.getLangWatchTracer = _chunkHBVGKWJKjs.getLangWatchTracer; exports.getLangWatchTracerFromProvider = _chunkHBVGKWJKjs.getLangWatchTracerFromProvider; exports.shouldCaptureInput = _chunkTKSTXX3Djs.shouldCaptureInput; exports.shouldCaptureOutput = _chunkTKSTXX3Djs.shouldCaptureOutput; exports.spanTypes = _chunkHBVGKWJKjs.spanTypes;
|
|
47
42
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/observability-sdk/index.js"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,uDAA6B;AAC7B
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/observability-sdk/index.js"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,gmCAAC","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/observability-sdk/index.js"}
|
|
@@ -1,31 +1,26 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DataCapturePresets,
|
|
3
3
|
FilterableBatchSpanProcessor
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-2O4ILSP5.mjs";
|
|
5
5
|
import {
|
|
6
6
|
createLangWatchSpan,
|
|
7
7
|
emitEvaluationEvent,
|
|
8
8
|
getLangWatchTracer,
|
|
9
9
|
getLangWatchTracerFromProvider,
|
|
10
10
|
spanTypes
|
|
11
|
-
} from "../chunk-
|
|
11
|
+
} from "../chunk-3QHURXIZ.mjs";
|
|
12
12
|
import {
|
|
13
13
|
LangWatchLogsExporter,
|
|
14
14
|
LangWatchTraceExporter,
|
|
15
15
|
getLangWatchLogger,
|
|
16
16
|
getLangWatchLoggerFromProvider
|
|
17
|
-
} from "../chunk-
|
|
18
|
-
import "../chunk-SIXSSID3.mjs";
|
|
19
|
-
import "../chunk-R6QPBFZD.mjs";
|
|
17
|
+
} from "../chunk-KH2GOLFO.mjs";
|
|
20
18
|
import {
|
|
19
|
+
attributes_exports,
|
|
21
20
|
getDataCaptureMode,
|
|
22
21
|
shouldCaptureInput,
|
|
23
22
|
shouldCaptureOutput
|
|
24
|
-
} from "../chunk-
|
|
25
|
-
import {
|
|
26
|
-
attributes_exports
|
|
27
|
-
} from "../chunk-PONU4KJX.mjs";
|
|
28
|
-
import "../chunk-BAX4W3AY.mjs";
|
|
23
|
+
} from "../chunk-L5KBRKHS.mjs";
|
|
29
24
|
export {
|
|
30
25
|
DataCapturePresets,
|
|
31
26
|
FilterableBatchSpanProcessor,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as _opentelemetry_api from '@opentelemetry/api';
|
|
2
2
|
import { Attributes } from '@opentelemetry/api';
|
|
3
|
-
import {
|
|
3
|
+
import { j as LangWatchTracer, L as LangWatchSpan, m as ChatMessage } from '../../../types-bfBzGB7S.mjs';
|
|
4
4
|
import { AgentAction, AgentFinish } from '@langchain/core/agents';
|
|
5
5
|
import { BaseCallbackHandler } from '@langchain/core/callbacks/base';
|
|
6
6
|
import { DocumentInterface } from '@langchain/core/documents';
|
|
@@ -9,7 +9,7 @@ import { BaseMessage } from '@langchain/core/messages';
|
|
|
9
9
|
import { LLMResult } from '@langchain/core/outputs';
|
|
10
10
|
import { ChainValues } from '@langchain/core/utils/types';
|
|
11
11
|
import 'zod';
|
|
12
|
-
import '../../../types-
|
|
12
|
+
import '../../../types-VOZv9LYO.mjs';
|
|
13
13
|
import '@opentelemetry/api-logs';
|
|
14
14
|
import '@opentelemetry/semantic-conventions';
|
|
15
15
|
import '@opentelemetry/semantic-conventions/incubating';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as _opentelemetry_api from '@opentelemetry/api';
|
|
2
2
|
import { Attributes } from '@opentelemetry/api';
|
|
3
|
-
import {
|
|
3
|
+
import { j as LangWatchTracer, L as LangWatchSpan, m as ChatMessage } from '../../../types-D-yAkWoC.js';
|
|
4
4
|
import { AgentAction, AgentFinish } from '@langchain/core/agents';
|
|
5
5
|
import { BaseCallbackHandler } from '@langchain/core/callbacks/base';
|
|
6
6
|
import { DocumentInterface } from '@langchain/core/documents';
|
|
@@ -9,7 +9,7 @@ import { BaseMessage } from '@langchain/core/messages';
|
|
|
9
9
|
import { LLMResult } from '@langchain/core/outputs';
|
|
10
10
|
import { ChainValues } from '@langchain/core/utils/types';
|
|
11
11
|
import 'zod';
|
|
12
|
-
import '../../../types-
|
|
12
|
+
import '../../../types-VOZv9LYO.js';
|
|
13
13
|
import '@opentelemetry/api-logs';
|
|
14
14
|
import '@opentelemetry/semantic-conventions';
|
|
15
15
|
import '@opentelemetry/semantic-conventions/incubating';
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkHBVGKWJKjs = require('../../../chunk-HBVGKWJK.js');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _chunkOOXU4LFWjs = require('../../../chunk-OOXU4LFW.js');
|
|
9
|
-
require('../../../chunk-HDA25KWZ.js');
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
var _chunkBRPEG3YQjs = require('../../../chunk-BRPEG3YQ.js');
|
|
9
|
+
var _chunkTKSTXX3Djs = require('../../../chunk-TKSTXX3D.js');
|
|
13
10
|
|
|
14
11
|
// src/observability-sdk/instrumentation/langchain/index.ts
|
|
15
12
|
var _base = require('@langchain/core/callbacks/base');
|
|
@@ -32,7 +29,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
|
|
|
32
29
|
constructor() {
|
|
33
30
|
super(...arguments);
|
|
34
31
|
this.name = "LangWatchCallbackHandler";
|
|
35
|
-
this.tracer =
|
|
32
|
+
this.tracer = _chunkHBVGKWJKjs.getLangWatchTracer.call(void 0, "langwatch.instrumentation.langchain");
|
|
36
33
|
this.spans = {};
|
|
37
34
|
this.parentOf = {};
|
|
38
35
|
this.skipped = {};
|
|
@@ -67,7 +64,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
|
|
|
67
64
|
span.setType(type);
|
|
68
65
|
if ((_a = args.tags) == null ? void 0 : _a.length)
|
|
69
66
|
span.setAttribute("langwatch.langchain.run.tags", args.tags.slice(0, 50));
|
|
70
|
-
if (
|
|
67
|
+
if (_chunkTKSTXX3Djs.shouldCaptureInput.call(void 0, ) && args.input !== void 0) {
|
|
71
68
|
const i = args.input;
|
|
72
69
|
if (i && typeof i === "object" && "type" in i && "value" in i) {
|
|
73
70
|
span.setInput(i.type, i.value);
|
|
@@ -107,7 +104,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
|
|
|
107
104
|
if (end.err) {
|
|
108
105
|
span.recordException(end.err);
|
|
109
106
|
span.setStatus({ code: _api.SpanStatusCode.ERROR, message: end.err.message });
|
|
110
|
-
} else if (
|
|
107
|
+
} else if (_chunkTKSTXX3Djs.shouldCaptureOutput.call(void 0, ) && end.output !== void 0) {
|
|
111
108
|
span.setOutput(end.output);
|
|
112
109
|
}
|
|
113
110
|
span.end();
|
|
@@ -117,7 +114,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
|
|
|
117
114
|
this.seenStarts.delete(runId);
|
|
118
115
|
}
|
|
119
116
|
async handleLLMStart(llm, prompts, runId, parentRunId, extraParams, tags, metadata, name) {
|
|
120
|
-
const input =
|
|
117
|
+
const input = _chunkTKSTXX3Djs.shouldCaptureInput.call(void 0, ) && prompts ? {
|
|
121
118
|
type: "list",
|
|
122
119
|
value: prompts.map((p) => ({ type: "text", value: p }))
|
|
123
120
|
} : void 0;
|
|
@@ -134,7 +131,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
|
|
|
134
131
|
});
|
|
135
132
|
}
|
|
136
133
|
async handleChatModelStart(llm, messages, runId, parentRunId, extraParams, tags, metadata, name) {
|
|
137
|
-
const input =
|
|
134
|
+
const input = _chunkTKSTXX3Djs.shouldCaptureInput.call(void 0, ) ? {
|
|
138
135
|
type: "chat_messages",
|
|
139
136
|
value: messages.flatMap(convertFromLangChainMessages)
|
|
140
137
|
} : void 0;
|
|
@@ -161,7 +158,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
|
|
|
161
158
|
"gen_ai.usage.total_tokens": (_d = tu.totalTokens) != null ? _d : 0
|
|
162
159
|
});
|
|
163
160
|
}
|
|
164
|
-
const outputs =
|
|
161
|
+
const outputs = _chunkTKSTXX3Djs.shouldCaptureOutput.call(void 0, ) ? response.generations.flat().map((g) => {
|
|
165
162
|
if ("message" in g && g.message) {
|
|
166
163
|
return convertFromLangChainMessages([
|
|
167
164
|
g.message
|
|
@@ -189,7 +186,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
|
|
|
189
186
|
metadata,
|
|
190
187
|
tags,
|
|
191
188
|
name,
|
|
192
|
-
input:
|
|
189
|
+
input: _chunkTKSTXX3Djs.shouldCaptureInput.call(void 0, ) ? inputs : void 0
|
|
193
190
|
});
|
|
194
191
|
if (_runType) {
|
|
195
192
|
const span = this.spans[runId];
|
|
@@ -217,7 +214,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
|
|
|
217
214
|
metadata,
|
|
218
215
|
tags,
|
|
219
216
|
name,
|
|
220
|
-
input:
|
|
217
|
+
input: _chunkTKSTXX3Djs.shouldCaptureInput.call(void 0, ) ? { type: "text", value: input } : void 0
|
|
221
218
|
});
|
|
222
219
|
const span = this.spans[runId];
|
|
223
220
|
if (span) {
|
|
@@ -229,7 +226,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
|
|
|
229
226
|
}
|
|
230
227
|
async handleToolEnd(output, runId, parentRunId) {
|
|
231
228
|
this.finishRun(runId, {
|
|
232
|
-
output:
|
|
229
|
+
output: _chunkTKSTXX3Djs.shouldCaptureOutput.call(void 0, ) ? { type: "text", value: output } : void 0,
|
|
233
230
|
event: "handleToolEnd",
|
|
234
231
|
parentRunId
|
|
235
232
|
});
|
|
@@ -246,7 +243,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
|
|
|
246
243
|
metadata,
|
|
247
244
|
tags,
|
|
248
245
|
name,
|
|
249
|
-
input:
|
|
246
|
+
input: _chunkTKSTXX3Djs.shouldCaptureInput.call(void 0, ) ? { type: "text", value: query } : void 0
|
|
250
247
|
});
|
|
251
248
|
const span = this.spans[runId];
|
|
252
249
|
if (span) {
|
|
@@ -258,10 +255,10 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
|
|
|
258
255
|
}
|
|
259
256
|
async handleRetrieverEnd(documents, runId, parentRunId, tags) {
|
|
260
257
|
const span = this.spans[runId];
|
|
261
|
-
if (span &&
|
|
258
|
+
if (span && _chunkTKSTXX3Djs.shouldCaptureOutput.call(void 0, )) {
|
|
262
259
|
span.setOutput(documents);
|
|
263
260
|
}
|
|
264
|
-
if (span &&
|
|
261
|
+
if (span && _chunkTKSTXX3Djs.shouldCaptureInput.call(void 0, )) {
|
|
265
262
|
span.setRAGContexts(
|
|
266
263
|
documents.map((document) => ({
|
|
267
264
|
document_id: document.metadata.id,
|
|
@@ -289,7 +286,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
|
|
|
289
286
|
}
|
|
290
287
|
async handleAgentEnd(action, runId, parentRunId, tags) {
|
|
291
288
|
this.finishRun(runId, {
|
|
292
|
-
output:
|
|
289
|
+
output: _chunkTKSTXX3Djs.shouldCaptureOutput.call(void 0, ) ? { type: "json", value: action.returnValues } : void 0,
|
|
293
290
|
event: "handleAgentEnd",
|
|
294
291
|
parentRunId,
|
|
295
292
|
tags
|
|
@@ -331,7 +328,7 @@ function convertFromLangChainMessage(message) {
|
|
|
331
328
|
(c) => (c == null ? void 0 : c.type) === "text" ? { type: "text", text: c.text } : (c == null ? void 0 : c.type) === "image_url" ? { type: "image_url", image_url: c.image_url } : { type: "text", text: JSON.stringify(c) }
|
|
332
329
|
) : JSON.stringify(message.content);
|
|
333
330
|
const functionCall = message.additional_kwargs;
|
|
334
|
-
return
|
|
331
|
+
return _chunkTKSTXX3Djs.__spreadValues.call(void 0, {
|
|
335
332
|
role,
|
|
336
333
|
content
|
|
337
334
|
}, functionCall && typeof functionCall === "object" && Object.keys(functionCall).length > 0 ? { function_call: functionCall } : {});
|
|
@@ -363,7 +360,7 @@ function wrapNonScalarValues(value) {
|
|
|
363
360
|
if (value === null) return JSON.stringify(null);
|
|
364
361
|
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean")
|
|
365
362
|
return value;
|
|
366
|
-
const chatMessages =
|
|
363
|
+
const chatMessages = _chunkHBVGKWJKjs.chatMessageSchema.array().safeParse(value);
|
|
367
364
|
if (Array.isArray(value) && chatMessages.success) {
|
|
368
365
|
return JSON.stringify({ type: "chat_messages", value: chatMessages.data });
|
|
369
366
|
}
|
|
@@ -382,7 +379,7 @@ function wrapNonScalarValues(value) {
|
|
|
382
379
|
}
|
|
383
380
|
}
|
|
384
381
|
function addLangChainEvent(span, eventName, runId, parentRunId, tags, metadata, attributes) {
|
|
385
|
-
const attrs =
|
|
382
|
+
const attrs = _chunkTKSTXX3Djs.__spreadValues.call(void 0, {
|
|
386
383
|
"langwatch.langchain.run.id": runId,
|
|
387
384
|
"langwatch.langchain.run.parent_id": parentRunId,
|
|
388
385
|
"langwatch.langchain.event.name": eventName
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/observability-sdk/instrumentation/langchain/index.js","../../../../src/observability-sdk/instrumentation/langchain/index.ts"],"names":[],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/observability-sdk/instrumentation/langchain/index.js","sourcesContent":[null,"import type { AgentAction, AgentFinish } from \"@langchain/core/agents\";\nimport { BaseCallbackHandler } from \"@langchain/core/callbacks/base\";\nimport { type DocumentInterface } from \"@langchain/core/documents\";\nimport type { Serialized } from \"@langchain/core/load/serializable\";\nimport { type BaseMessage } from \"@langchain/core/messages\";\nimport type { ChatGeneration, LLMResult } from \"@langchain/core/outputs\";\nimport {\n chatMessageSchema,\n type ChatMessage,\n type ChatRichContent,\n} from \"../../../internal/generated/types/tracer\";\nimport type { ChainValues } from \"@langchain/core/utils/types\";\nimport { getLangWatchTracer } from \"../../tracer\";\nimport type { LangWatchSpan } from \"../../span\";\nimport {\n context,\n trace,\n SpanStatusCode,\n type Attributes,\n} from \"@opentelemetry/api\";\nimport { shouldCaptureInput, shouldCaptureOutput } from \"../../config\";\n\ntype RunKind = \"llm\" | \"chat\" | \"chain\" | \"tool\" | \"retriever\";\n\ntype StartArgs = {\n kind: RunKind;\n runId: string;\n parentRunId?: string;\n serialized?: Serialized;\n metadata?: Record<string, unknown>;\n tags?: string[];\n name?: string;\n extraParams?: Record<string, unknown>;\n input?: unknown; // already prepared for setInput()\n};\n\nconst LANGGRAPH_METADATA_KEYS = new Set<string>([\n \"thread_id\",\n \"langgraph_step\",\n \"langgraph_node\",\n \"langgraph_triggers\",\n \"langgraph_path\",\n \"langgraph_checkpoint_ns\",\n \"__pregel_task_id\",\n \"checkpoint_ns\",\n]);\n\nexport class LangWatchCallbackHandler extends BaseCallbackHandler {\n name = \"LangWatchCallbackHandler\";\n tracer = getLangWatchTracer(\"langwatch.instrumentation.langchain\");\n\n private spans: Record<string, LangWatchSpan | undefined> = {};\n private parentOf: Record<string, string | undefined> = {};\n private skipped: Record<string, true | undefined> = {};\n private seenStarts = new Set<string>();\n\n private startRunSpan(args: StartArgs) {\n const { runId, parentRunId, serialized, tags } = args;\n this.parentOf[runId] = parentRunId;\n\n // if we want to skip, we record as such as we cn do context matching latet\n if (ctxSkip(serialized, tags)) {\n this.skipped[runId] = true;\n return;\n }\n if (this.seenStarts.has(runId)) return;\n this.seenStarts.add(runId);\n\n const parentCtx = getResolvedParentContext(\n parentRunId,\n this.spans,\n this.parentOf\n );\n const parentSpan = parentRunId ? this.spans[parentRunId] : void 0;\n const links = parentSpan\n ? [{ context: parentSpan.spanContext() }]\n : void 0;\n\n const { name, type } = deriveNameAndType({\n runType: args.kind,\n name: args.name,\n serialized: args.serialized,\n metadata: args.metadata,\n tags: args.tags,\n inputs: args.input,\n });\n\n const span = this.tracer.startSpan(name, { links }, parentCtx);\n span.setType(type);\n\n if (args.tags?.length)\n span.setAttribute(\"langwatch.langchain.run.tags\", args.tags.slice(0, 50));\n\n if (shouldCaptureInput() && args.input !== void 0) {\n const i: any = args.input as any;\n if (i && typeof i === \"object\" && \"type\" in i && \"value\" in i) {\n span.setInput(i.type, i.value);\n } else {\n span.setInput(i);\n }\n }\n\n if (args.extraParams) {\n span.setAttributes(\n Object.fromEntries(\n Object.entries(args.extraParams).map(([k, v]) => [\n `langwatch.langchain.run.extra_params.${k}`,\n wrapNonScalarValues(v),\n ])\n )\n );\n }\n\n if (args.metadata) {\n applyGenAIAttrs(span, args.metadata, args.extraParams);\n setLangGraphAttributes(span, args.metadata);\n span.setAttributes(buildLangChainMetadataAttributes(args.metadata));\n }\n\n this.spans[runId] = span;\n }\n\n private finishRun(\n runId: string,\n end: {\n output?: unknown;\n err?: Error;\n event: string;\n parentRunId?: string;\n extra?: Attributes;\n tags?: string[];\n md?: Record<string, unknown>;\n }\n ) {\n const span = this.spans[runId];\n if (!span) return;\n\n addLangChainEvent(\n span,\n end.event,\n runId,\n end.parentRunId,\n end.tags,\n end.md,\n end.extra\n );\n\n if (end.err) {\n span.recordException(end.err);\n span.setStatus({ code: SpanStatusCode.ERROR, message: end.err.message });\n } else if (shouldCaptureOutput() && end.output !== undefined) {\n span.setOutput(end.output as any);\n }\n\n span.end();\n\n delete this.spans[runId];\n delete this.parentOf[runId];\n delete this.skipped[runId];\n this.seenStarts.delete(runId);\n }\n\n async handleLLMStart(\n llm: Serialized,\n prompts: string[],\n runId: string,\n parentRunId?: string,\n extraParams?: Record<string, unknown>,\n tags?: string[],\n metadata?: Record<string, unknown>,\n name?: string\n ): Promise<void> {\n const input = shouldCaptureInput() && prompts\n ? {\n type: \"list\",\n value: prompts.map((p) => ({ type: \"text\", value: p })),\n }\n : void 0;\n\n this.startRunSpan({\n kind: \"llm\",\n runId,\n parentRunId,\n serialized: llm,\n metadata,\n tags,\n name,\n extraParams,\n input,\n });\n }\n\n async handleChatModelStart(\n llm: Serialized,\n messages: BaseMessage[][],\n runId: string,\n parentRunId?: string,\n extraParams?: Record<string, unknown>,\n tags?: string[],\n metadata?: Record<string, unknown>,\n name?: string\n ): Promise<void> {\n const input = shouldCaptureInput()\n ? {\n type: \"chat_messages\",\n value: messages.flatMap(convertFromLangChainMessages),\n }\n : void 0;\n\n this.startRunSpan({\n kind: \"chat\",\n runId,\n parentRunId,\n serialized: llm,\n metadata,\n tags,\n name,\n extraParams,\n input,\n });\n }\n\n async handleLLMEnd(\n response: LLMResult,\n runId: string,\n parentRunId?: string\n ): Promise<void> {\n const span = this.spans[runId];\n const tu = (response.llmOutput as any)?.tokenUsage as\n | {\n promptTokens?: number;\n completionTokens?: number;\n totalTokens?: number;\n }\n | undefined;\n if (span && tu) {\n span.setAttributes({\n \"gen_ai.usage.prompt_tokens\": tu.promptTokens ?? 0,\n \"gen_ai.usage.completion_tokens\": tu.completionTokens ?? 0,\n \"gen_ai.usage.total_tokens\": tu.totalTokens ?? 0,\n });\n }\n\n const outputs = shouldCaptureOutput()\n ? response.generations.flat().map((g) => {\n if (\"message\" in g && g.message) {\n return convertFromLangChainMessages([\n (g as ChatGeneration).message,\n ]);\n } else if (\"text\" in g && g.text) {\n return g.text;\n }\n return g;\n })\n : undefined;\n\n this.finishRun(runId, {\n output: outputs,\n event: \"handleLLMEnd\",\n parentRunId,\n });\n }\n\n async handleLLMError(\n err: Error,\n runId: string,\n parentRunId?: string\n ): Promise<void> {\n this.finishRun(runId, { err, event: \"handleLLMError\", parentRunId });\n }\n\n async handleChainStart(\n chain: Serialized,\n inputs: ChainValues,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n metadata?: Record<string, unknown>,\n _runType?: string,\n name?: string\n ): Promise<void> {\n this.startRunSpan({\n kind: \"chain\",\n runId,\n parentRunId,\n serialized: chain,\n metadata,\n tags,\n name,\n input: shouldCaptureInput() ? inputs : void 0,\n });\n\n if (_runType) {\n const span = this.spans[runId];\n if (span) span.setAttribute(\"langwatch.langchain.run.type\", _runType);\n }\n }\n\n async handleChainEnd(\n output: ChainValues,\n runId: string,\n parentRunId?: string\n ): Promise<void> {\n this.finishRun(runId, { output, event: \"handleChainEnd\", parentRunId });\n }\n\n async handleChainError(\n err: Error,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n kwargs?: { inputs?: Record<string, unknown> | undefined }\n ): Promise<void> {\n this.finishRun(runId, {\n err,\n event: \"handleChainError\",\n parentRunId,\n tags,\n md: kwargs,\n });\n }\n\n async handleToolStart(\n tool: Serialized,\n input: string,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n metadata?: Record<string, unknown>,\n name?: string\n ): Promise<void> {\n this.startRunSpan({\n kind: \"tool\",\n runId,\n parentRunId,\n serialized: tool,\n metadata,\n tags,\n name,\n input: shouldCaptureInput() ? { type: \"text\", value: input } : void 0,\n });\n\n const span = this.spans[runId];\n if (span) {\n span.setAttributes({\n \"langwatch.langchain.run.id\": runId,\n \"langwatch.langchain.run.parent_id\": parentRunId,\n });\n }\n }\n\n async handleToolEnd(\n output: string,\n runId: string,\n parentRunId?: string\n ): Promise<void> {\n this.finishRun(runId, {\n output: shouldCaptureOutput()\n ? { type: \"text\", value: output }\n : void 0,\n event: \"handleToolEnd\",\n parentRunId,\n });\n }\n\n async handleToolError(\n err: Error,\n runId: string,\n parentRunId?: string,\n tags?: string[]\n ): Promise<void> {\n this.finishRun(runId, { err, event: \"handleToolError\", parentRunId, tags });\n }\n\n async handleRetrieverStart(\n retriever: Serialized,\n query: string,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n metadata?: Record<string, unknown>,\n name?: string\n ) {\n this.startRunSpan({\n kind: \"retriever\",\n runId,\n parentRunId,\n serialized: retriever,\n metadata,\n tags,\n name,\n input: shouldCaptureInput() ? { type: \"text\", value: query } : void 0,\n });\n\n const span = this.spans[runId];\n if (span) {\n span.setAttributes({\n \"langwatch.langchain.run.id\": runId,\n \"langwatch.langchain.run.parent_id\": parentRunId,\n });\n }\n }\n\n async handleRetrieverEnd(\n documents: DocumentInterface<Record<string, any>>[],\n runId: string,\n parentRunId?: string,\n tags?: string[]\n ) {\n const span = this.spans[runId];\n\n if (span && shouldCaptureOutput()) {\n span.setOutput(documents);\n }\n\n if (span && shouldCaptureInput()) {\n span.setRAGContexts(\n documents.map((document) => ({\n document_id: document.metadata.id,\n chunk_id: document.metadata.chunk_id,\n content: document.pageContent,\n }))\n );\n }\n\n this.finishRun(runId, { event: \"handleRetrieverEnd\", parentRunId, tags });\n }\n\n async handleRetrieverError(\n err: Error,\n runId: string,\n parentRunId?: string,\n tags?: string[]\n ) {\n this.finishRun(runId, {\n err,\n event: \"handleRetrieverError\",\n parentRunId,\n tags,\n });\n }\n\n async handleAgentAction(\n _action: AgentAction,\n runId: string,\n parentRunId?: string,\n tags?: string[]\n ): Promise<void> {\n const span = this.spans[runId];\n if (span) {\n addLangChainEvent(span, \"handleAgentAction\", runId, parentRunId, tags);\n span.setType(\"agent\");\n }\n }\n\n async handleAgentEnd(\n action: AgentFinish,\n runId: string,\n parentRunId?: string,\n tags?: string[]\n ): Promise<void> {\n this.finishRun(runId, {\n output: shouldCaptureOutput()\n ? { type: \"json\", value: action.returnValues }\n : void 0,\n event: \"handleAgentEnd\",\n parentRunId,\n tags,\n });\n }\n}\n\nexport function convertFromLangChainMessages(\n messages: BaseMessage[]\n): ChatMessage[] {\n const out: ChatMessage[] = [];\n for (const message of messages) {\n out.push(\n convertFromLangChainMessage(message as BaseMessage & { id?: string[] })\n );\n }\n return out;\n}\n\nfunction convertFromLangChainMessage(\n message: BaseMessage & { id?: string[] }\n): ChatMessage {\n let role: ChatMessage[\"role\"] = \"user\";\n\n const msgType = (message as any).type as string | undefined;\n if (msgType === \"human\") role = \"user\";\n else if (msgType === \"ai\") role = \"assistant\";\n else if (msgType === \"system\") role = \"system\";\n else if (msgType === \"function\") role = \"function\";\n else if (msgType === \"tool\") role = \"tool\";\n else {\n if (\n (message as any)?._getType?.() === \"human\" ||\n message.id?.[message.id.length - 1] === \"HumanMessage\"\n ) {\n role = \"user\";\n } else if (\n (message as any)?._getType?.() === \"ai\" ||\n message.id?.[message.id.length - 1] === \"AIMessage\"\n ) {\n role = \"assistant\";\n } else if (\n (message as any)?._getType?.() === \"system\" ||\n message.id?.[message.id.length - 1] === \"SystemMessage\"\n ) {\n role = \"system\";\n } else if (\n (message as any)?._getType?.() === \"function\" ||\n message.id?.[message.id.length - 1] === \"FunctionMessage\"\n ) {\n role = \"function\";\n } else if (\n (message as any)?._getType?.() === \"tool\" ||\n message.id?.[message.id.length - 1] === \"ToolMessage\"\n ) {\n role = \"tool\";\n }\n }\n\n const content: ChatMessage[\"content\"] =\n typeof (message as any).content === \"string\"\n ? ((message as any).content as string)\n : (message as any).content == null\n ? null\n : Array.isArray((message as any).content)\n ? (message as any).content.map(\n (c: any): ChatRichContent =>\n c?.type === \"text\"\n ? { type: \"text\", text: c.text }\n : c?.type === \"image_url\"\n ? { type: \"image_url\", image_url: c.image_url }\n : { type: \"text\", text: JSON.stringify(c) }\n )\n : JSON.stringify((message as any).content);\n\n const functionCall = (message as any).additional_kwargs;\n\n return {\n role,\n content,\n ...(functionCall &&\n typeof functionCall === \"object\" &&\n Object.keys(functionCall).length > 0\n ? { function_call: functionCall }\n : {}),\n };\n}\n\nfunction className(serialized?: Serialized): string {\n const id = (serialized as any)?.id;\n if (Array.isArray(id) && id.length) return String(id[id.length - 1]);\n const ns = (serialized as any)?.lc_namespace;\n if (Array.isArray(ns) && ns.length) return String(ns[ns.length - 1]);\n\n return \"\";\n}\n\nfunction shorten(str: string, max = 120): string {\n return typeof str === \"string\" && str.length > max\n ? str.slice(0, max - 1) + \"…\"\n : str;\n}\n\nfunction previewInput(v: unknown): string | undefined {\n if (typeof v === \"string\") {\n const s = v.trim();\n return s ? shorten(s, 120) : void 0;\n }\n return void 0;\n}\n\nfunction ctxSkip(serialized?: Serialized, tags?: string[]) {\n const cls = className(serialized);\n return (\n cls.startsWith(\"ChannelWrite\") ||\n (tags?.includes(\"langsmith:hidden\") ?? false)\n );\n}\n\nfunction wrapNonScalarValues(\n value: unknown\n): string | number | boolean | undefined {\n if (value === void 0) return void 0;\n if (value === null) return JSON.stringify(null);\n if (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\"\n )\n return value;\n\n // Special-case: ChatMessage[] detection via zod schema the project already has\n const chatMessages = chatMessageSchema.array().safeParse(value as any);\n if (Array.isArray(value) && chatMessages.success) {\n return JSON.stringify({ type: \"chat_messages\", value: chatMessages.data });\n }\n\n try {\n const seen = new WeakSet();\n const json = JSON.stringify(value as any, (k, val) => {\n if (typeof val === \"object\" && val !== null) {\n if (seen.has(val)) return \"[Circular]\";\n seen.add(val);\n }\n return val;\n });\n return json;\n } catch {\n return JSON.stringify({ type: \"raw\", value: \"[Non-Serializable]\" });\n }\n}\n\nfunction addLangChainEvent(\n span: LangWatchSpan,\n eventName: string,\n runId: string,\n parentRunId: string | undefined,\n tags?: string[],\n metadata?: Record<string, unknown>,\n attributes?: Attributes\n) {\n const attrs: Attributes = {\n \"langwatch.langchain.run.id\": runId,\n \"langwatch.langchain.run.parent_id\": parentRunId,\n \"langwatch.langchain.event.name\": eventName,\n ...attributes,\n };\n\n if (tags?.length) attrs[\"langwatch.langchain.run.tags\"] = tags.slice(0, 50);\n if (metadata) {\n Object.entries(metadata).forEach(([key, value]) => {\n attrs[key] = wrapNonScalarValues(value);\n });\n }\n\n span.addEvent(\"langwatch.langchain.callback\", attrs);\n}\n\nfunction setLangGraphAttributes(\n span: LangWatchSpan,\n metadata?: Record<string, unknown>\n) {\n if (!metadata) return;\n const keys = Object.keys(metadata);\n for (const key of keys) {\n const value = (metadata as any)[key];\n if (value !== undefined) {\n const wrapped = wrapNonScalarValues(value);\n if (wrapped !== undefined) {\n span.setAttribute(\n `langwatch.langgraph.${key}` as const,\n wrapped as any\n );\n }\n }\n }\n}\n\nfunction buildLangChainMetadataAttributes(metadata: Record<string, unknown>) {\n if (!metadata) return {};\n return Object.fromEntries(\n Object.entries(metadata)\n .filter(([key]) => !LANGGRAPH_METADATA_KEYS.has(key))\n .map(([key, value]) => [\n `langwatch.langchain.run.metadata.${key}`,\n wrapNonScalarValues(value),\n ])\n );\n}\n\nfunction applyGenAIAttrs(\n span: LangWatchSpan,\n metadata?: Record<string, unknown>,\n extraParams?: Record<string, unknown>\n) {\n const md = (metadata ?? {}) as any;\n const ex = (extraParams ?? {}) as any;\n\n const provider = md.ls_provider as string | undefined;\n const requestModel = md.ls_model_name ?? md.kwargs?.model ?? ex.kwargs?.model;\n const temperature =\n md.ls_temperature ?? md.kwargs?.temperature ?? ex.kwargs?.temperature;\n const responseModel = md.response_metadata?.model_name as string | undefined;\n\n if (provider) span.setAttribute(\"gen_ai.system\", provider);\n if (requestModel) span.setAttribute(\"gen_ai.request.model\", requestModel);\n if (typeof temperature === \"number\")\n span.setAttribute(\"gen_ai.request.temperature\", temperature);\n if (responseModel) span.setAttribute(\"gen_ai.response.model\", responseModel);\n}\n\nfunction getResolvedParentContext(\n runId: string | undefined,\n spans: Record<string, LangWatchSpan | undefined>,\n parentOf: Record<string, string | undefined>\n) {\n let cur = runId;\n while (cur) {\n const s = spans[cur];\n if (s) return trace.setSpan(context.active(), s);\n cur = parentOf[cur];\n }\n return context.active();\n}\n\nfunction deriveNameAndType(opts: {\n runType: RunKind;\n name?: string;\n serialized?: Serialized;\n metadata?: Record<string, unknown>;\n tags?: string[];\n inputs?: unknown;\n}): { name: string; type: \"llm\" | \"chain\" | \"tool\" | \"rag\" | \"component\" } {\n const { runType, name, serialized, metadata, inputs } = opts;\n\n // user-specified name / metadata override\n const hardName = (name?.trim() ?? (metadata as any)?.operation_name) as\n | string\n | undefined;\n if (hardName) {\n return {\n name: hardName,\n type:\n runType === \"tool\"\n ? \"tool\"\n : runType === \"retriever\"\n ? \"rag\"\n : runType === \"llm\" || runType === \"chat\"\n ? \"llm\"\n : \"chain\",\n };\n }\n\n const cls = className(serialized);\n const md = (metadata ?? {}) as any;\n\n // LangGraph node / router - prioritize routers over nodes\n const hasNode = md?.langgraph_node != null;\n const hasTriggers = Array.isArray(md?.langgraph_triggers) && md.langgraph_triggers.length > 0;\n const isRouter =\n cls.startsWith(\"Branch<\") || hasTriggers;\n const isGraphRunner = md?.langgraph_path && !md?.langgraph_node;\n\n // LLM / Chat - always prioritize runType over metadata\n if (runType === \"llm\" || runType === \"chat\") {\n const prov = (md?.ls_provider as string) ?? \"LLM\";\n const model = (md?.ls_model_name as string) ?? (cls || \"call\");\n const temp = md?.ls_temperature;\n const tempStr =\n temp != null\n ? typeof temp === \"number\"\n ? temp.toString()\n : JSON.stringify(temp)\n : null;\n const nm =\n tempStr != null\n ? `${prov} ${model} (temp ${tempStr})`\n : `${prov} ${model}`;\n return { name: nm, type: \"llm\" };\n }\n\n // Prioritize LangGraph routers over nodes (but after LLM/Chat)\n if (isRouter) {\n const pathArr = md?.langgraph_path as string[] | undefined;\n const fromNode =\n Array.isArray(pathArr) && pathArr.length\n ? pathArr[pathArr.length - 1]\n : undefined;\n const decision = Array.isArray(md?.langgraph_triggers)\n ? String(\n md.langgraph_triggers.find((t: any) =>\n String(t).startsWith(\"branch:\")\n ) ?? \"\"\n ).replace(/^branch:(to:)?/, \"\")\n : undefined;\n const nm = `Route: ${fromNode ?? \"unknown\"} → ${decision ?? \"unknown\"}`;\n return { name: nm, type: \"component\" };\n }\n\n if (hasNode) {\n const step = md?.langgraph_step;\n const nm = `Node: ${md.langgraph_node}${\n step != null ? ` (step ${String(step)})` : \"\"\n }`;\n return { name: nm, type: \"component\" };\n }\n if (isGraphRunner && runType === \"chain\") {\n return { name: \"Graph: LangGraph\", type: \"chain\" };\n }\n\n // Tool\n if (runType === \"tool\") {\n const tool = (metadata as any)?.name ?? (cls || \"tool\");\n const prev =\n previewInput(inputs) ?? previewInput((serialized as any)?.input);\n return {\n name: prev ? `Tool: ${tool} — ${prev}` : `Tool: ${tool}`,\n type: \"tool\",\n };\n }\n\n // Retriever\n if (runType === \"retriever\") return { name: \"Retriever\", type: \"rag\" };\n\n // Fallbacks\n if (cls.includes(\"Agent\"))\n return { name: `Agent: ${cls}`, type: \"component\" };\n if (cls.startsWith(\"Runnable\"))\n return { name: `Runnable: ${cls.replace(/^Runnable/, \"\")}`, type: \"chain\" };\n return { name: cls || \"LangChain operation\", type: \"chain\" };\n}\n\n// Export helper functions for testing\nexport {\n className,\n shorten,\n previewInput,\n ctxSkip,\n wrapNonScalarValues,\n addLangChainEvent,\n setLangGraphAttributes,\n buildLangChainMetadataAttributes,\n applyGenAIAttrs,\n getResolvedParentContext,\n deriveNameAndType,\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/observability-sdk/instrumentation/langchain/index.js","../../../../src/observability-sdk/instrumentation/langchain/index.ts"],"names":[],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/observability-sdk/instrumentation/langchain/index.js","sourcesContent":[null,"import type { AgentAction, AgentFinish } from \"@langchain/core/agents\";\nimport { BaseCallbackHandler } from \"@langchain/core/callbacks/base\";\nimport { type DocumentInterface } from \"@langchain/core/documents\";\nimport type { Serialized } from \"@langchain/core/load/serializable\";\nimport { type BaseMessage } from \"@langchain/core/messages\";\nimport type { ChatGeneration, LLMResult } from \"@langchain/core/outputs\";\nimport {\n chatMessageSchema,\n type ChatMessage,\n type ChatRichContent,\n} from \"../../../internal/generated/types/tracer\";\nimport type { ChainValues } from \"@langchain/core/utils/types\";\nimport { getLangWatchTracer } from \"../../tracer\";\nimport type { LangWatchSpan } from \"../../span\";\nimport {\n context,\n trace,\n SpanStatusCode,\n type Attributes,\n} from \"@opentelemetry/api\";\nimport { shouldCaptureInput, shouldCaptureOutput } from \"../../config\";\n\ntype RunKind = \"llm\" | \"chat\" | \"chain\" | \"tool\" | \"retriever\";\n\ntype StartArgs = {\n kind: RunKind;\n runId: string;\n parentRunId?: string;\n serialized?: Serialized;\n metadata?: Record<string, unknown>;\n tags?: string[];\n name?: string;\n extraParams?: Record<string, unknown>;\n input?: unknown; // already prepared for setInput()\n};\n\nconst LANGGRAPH_METADATA_KEYS = new Set<string>([\n \"thread_id\",\n \"langgraph_step\",\n \"langgraph_node\",\n \"langgraph_triggers\",\n \"langgraph_path\",\n \"langgraph_checkpoint_ns\",\n \"__pregel_task_id\",\n \"checkpoint_ns\",\n]);\n\nexport class LangWatchCallbackHandler extends BaseCallbackHandler {\n name = \"LangWatchCallbackHandler\";\n tracer = getLangWatchTracer(\"langwatch.instrumentation.langchain\");\n\n private spans: Record<string, LangWatchSpan | undefined> = {};\n private parentOf: Record<string, string | undefined> = {};\n private skipped: Record<string, true | undefined> = {};\n private seenStarts = new Set<string>();\n\n private startRunSpan(args: StartArgs) {\n const { runId, parentRunId, serialized, tags } = args;\n this.parentOf[runId] = parentRunId;\n\n // if we want to skip, we record as such as we cn do context matching latet\n if (ctxSkip(serialized, tags)) {\n this.skipped[runId] = true;\n return;\n }\n if (this.seenStarts.has(runId)) return;\n this.seenStarts.add(runId);\n\n const parentCtx = getResolvedParentContext(\n parentRunId,\n this.spans,\n this.parentOf\n );\n const parentSpan = parentRunId ? this.spans[parentRunId] : void 0;\n const links = parentSpan\n ? [{ context: parentSpan.spanContext() }]\n : void 0;\n\n const { name, type } = deriveNameAndType({\n runType: args.kind,\n name: args.name,\n serialized: args.serialized,\n metadata: args.metadata,\n tags: args.tags,\n inputs: args.input,\n });\n\n const span = this.tracer.startSpan(name, { links }, parentCtx);\n span.setType(type);\n\n if (args.tags?.length)\n span.setAttribute(\"langwatch.langchain.run.tags\", args.tags.slice(0, 50));\n\n if (shouldCaptureInput() && args.input !== void 0) {\n const i: any = args.input as any;\n if (i && typeof i === \"object\" && \"type\" in i && \"value\" in i) {\n span.setInput(i.type, i.value);\n } else {\n span.setInput(i);\n }\n }\n\n if (args.extraParams) {\n span.setAttributes(\n Object.fromEntries(\n Object.entries(args.extraParams).map(([k, v]) => [\n `langwatch.langchain.run.extra_params.${k}`,\n wrapNonScalarValues(v),\n ])\n )\n );\n }\n\n if (args.metadata) {\n applyGenAIAttrs(span, args.metadata, args.extraParams);\n setLangGraphAttributes(span, args.metadata);\n span.setAttributes(buildLangChainMetadataAttributes(args.metadata));\n }\n\n this.spans[runId] = span;\n }\n\n private finishRun(\n runId: string,\n end: {\n output?: unknown;\n err?: Error;\n event: string;\n parentRunId?: string;\n extra?: Attributes;\n tags?: string[];\n md?: Record<string, unknown>;\n }\n ) {\n const span = this.spans[runId];\n if (!span) return;\n\n addLangChainEvent(\n span,\n end.event,\n runId,\n end.parentRunId,\n end.tags,\n end.md,\n end.extra\n );\n\n if (end.err) {\n span.recordException(end.err);\n span.setStatus({ code: SpanStatusCode.ERROR, message: end.err.message });\n } else if (shouldCaptureOutput() && end.output !== undefined) {\n span.setOutput(end.output as any);\n }\n\n span.end();\n\n delete this.spans[runId];\n delete this.parentOf[runId];\n delete this.skipped[runId];\n this.seenStarts.delete(runId);\n }\n\n async handleLLMStart(\n llm: Serialized,\n prompts: string[],\n runId: string,\n parentRunId?: string,\n extraParams?: Record<string, unknown>,\n tags?: string[],\n metadata?: Record<string, unknown>,\n name?: string\n ): Promise<void> {\n const input = shouldCaptureInput() && prompts\n ? {\n type: \"list\",\n value: prompts.map((p) => ({ type: \"text\", value: p })),\n }\n : void 0;\n\n this.startRunSpan({\n kind: \"llm\",\n runId,\n parentRunId,\n serialized: llm,\n metadata,\n tags,\n name,\n extraParams,\n input,\n });\n }\n\n async handleChatModelStart(\n llm: Serialized,\n messages: BaseMessage[][],\n runId: string,\n parentRunId?: string,\n extraParams?: Record<string, unknown>,\n tags?: string[],\n metadata?: Record<string, unknown>,\n name?: string\n ): Promise<void> {\n const input = shouldCaptureInput()\n ? {\n type: \"chat_messages\",\n value: messages.flatMap(convertFromLangChainMessages),\n }\n : void 0;\n\n this.startRunSpan({\n kind: \"chat\",\n runId,\n parentRunId,\n serialized: llm,\n metadata,\n tags,\n name,\n extraParams,\n input,\n });\n }\n\n async handleLLMEnd(\n response: LLMResult,\n runId: string,\n parentRunId?: string\n ): Promise<void> {\n const span = this.spans[runId];\n const tu = (response.llmOutput as any)?.tokenUsage as\n | {\n promptTokens?: number;\n completionTokens?: number;\n totalTokens?: number;\n }\n | undefined;\n if (span && tu) {\n span.setAttributes({\n \"gen_ai.usage.prompt_tokens\": tu.promptTokens ?? 0,\n \"gen_ai.usage.completion_tokens\": tu.completionTokens ?? 0,\n \"gen_ai.usage.total_tokens\": tu.totalTokens ?? 0,\n });\n }\n\n const outputs = shouldCaptureOutput()\n ? response.generations.flat().map((g) => {\n if (\"message\" in g && g.message) {\n return convertFromLangChainMessages([\n (g as ChatGeneration).message,\n ]);\n } else if (\"text\" in g && g.text) {\n return g.text;\n }\n return g;\n })\n : undefined;\n\n this.finishRun(runId, {\n output: outputs,\n event: \"handleLLMEnd\",\n parentRunId,\n });\n }\n\n async handleLLMError(\n err: Error,\n runId: string,\n parentRunId?: string\n ): Promise<void> {\n this.finishRun(runId, { err, event: \"handleLLMError\", parentRunId });\n }\n\n async handleChainStart(\n chain: Serialized,\n inputs: ChainValues,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n metadata?: Record<string, unknown>,\n _runType?: string,\n name?: string\n ): Promise<void> {\n this.startRunSpan({\n kind: \"chain\",\n runId,\n parentRunId,\n serialized: chain,\n metadata,\n tags,\n name,\n input: shouldCaptureInput() ? inputs : void 0,\n });\n\n if (_runType) {\n const span = this.spans[runId];\n if (span) span.setAttribute(\"langwatch.langchain.run.type\", _runType);\n }\n }\n\n async handleChainEnd(\n output: ChainValues,\n runId: string,\n parentRunId?: string\n ): Promise<void> {\n this.finishRun(runId, { output, event: \"handleChainEnd\", parentRunId });\n }\n\n async handleChainError(\n err: Error,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n kwargs?: { inputs?: Record<string, unknown> | undefined }\n ): Promise<void> {\n this.finishRun(runId, {\n err,\n event: \"handleChainError\",\n parentRunId,\n tags,\n md: kwargs,\n });\n }\n\n async handleToolStart(\n tool: Serialized,\n input: string,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n metadata?: Record<string, unknown>,\n name?: string\n ): Promise<void> {\n this.startRunSpan({\n kind: \"tool\",\n runId,\n parentRunId,\n serialized: tool,\n metadata,\n tags,\n name,\n input: shouldCaptureInput() ? { type: \"text\", value: input } : void 0,\n });\n\n const span = this.spans[runId];\n if (span) {\n span.setAttributes({\n \"langwatch.langchain.run.id\": runId,\n \"langwatch.langchain.run.parent_id\": parentRunId,\n });\n }\n }\n\n async handleToolEnd(\n output: string,\n runId: string,\n parentRunId?: string\n ): Promise<void> {\n this.finishRun(runId, {\n output: shouldCaptureOutput()\n ? { type: \"text\", value: output }\n : void 0,\n event: \"handleToolEnd\",\n parentRunId,\n });\n }\n\n async handleToolError(\n err: Error,\n runId: string,\n parentRunId?: string,\n tags?: string[]\n ): Promise<void> {\n this.finishRun(runId, { err, event: \"handleToolError\", parentRunId, tags });\n }\n\n async handleRetrieverStart(\n retriever: Serialized,\n query: string,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n metadata?: Record<string, unknown>,\n name?: string\n ) {\n this.startRunSpan({\n kind: \"retriever\",\n runId,\n parentRunId,\n serialized: retriever,\n metadata,\n tags,\n name,\n input: shouldCaptureInput() ? { type: \"text\", value: query } : void 0,\n });\n\n const span = this.spans[runId];\n if (span) {\n span.setAttributes({\n \"langwatch.langchain.run.id\": runId,\n \"langwatch.langchain.run.parent_id\": parentRunId,\n });\n }\n }\n\n async handleRetrieverEnd(\n documents: DocumentInterface<Record<string, any>>[],\n runId: string,\n parentRunId?: string,\n tags?: string[]\n ) {\n const span = this.spans[runId];\n\n if (span && shouldCaptureOutput()) {\n span.setOutput(documents);\n }\n\n if (span && shouldCaptureInput()) {\n span.setRAGContexts(\n documents.map((document) => ({\n document_id: document.metadata.id,\n chunk_id: document.metadata.chunk_id,\n content: document.pageContent,\n }))\n );\n }\n\n this.finishRun(runId, { event: \"handleRetrieverEnd\", parentRunId, tags });\n }\n\n async handleRetrieverError(\n err: Error,\n runId: string,\n parentRunId?: string,\n tags?: string[]\n ) {\n this.finishRun(runId, {\n err,\n event: \"handleRetrieverError\",\n parentRunId,\n tags,\n });\n }\n\n async handleAgentAction(\n _action: AgentAction,\n runId: string,\n parentRunId?: string,\n tags?: string[]\n ): Promise<void> {\n const span = this.spans[runId];\n if (span) {\n addLangChainEvent(span, \"handleAgentAction\", runId, parentRunId, tags);\n span.setType(\"agent\");\n }\n }\n\n async handleAgentEnd(\n action: AgentFinish,\n runId: string,\n parentRunId?: string,\n tags?: string[]\n ): Promise<void> {\n this.finishRun(runId, {\n output: shouldCaptureOutput()\n ? { type: \"json\", value: action.returnValues }\n : void 0,\n event: \"handleAgentEnd\",\n parentRunId,\n tags,\n });\n }\n}\n\nexport function convertFromLangChainMessages(\n messages: BaseMessage[]\n): ChatMessage[] {\n const out: ChatMessage[] = [];\n for (const message of messages) {\n out.push(\n convertFromLangChainMessage(message as BaseMessage & { id?: string[] })\n );\n }\n return out;\n}\n\nfunction convertFromLangChainMessage(\n message: BaseMessage & { id?: string[] }\n): ChatMessage {\n let role: ChatMessage[\"role\"] = \"user\";\n\n const msgType = (message as any).type as string | undefined;\n if (msgType === \"human\") role = \"user\";\n else if (msgType === \"ai\") role = \"assistant\";\n else if (msgType === \"system\") role = \"system\";\n else if (msgType === \"function\") role = \"function\";\n else if (msgType === \"tool\") role = \"tool\";\n else {\n if (\n (message as any)?._getType?.() === \"human\" ||\n message.id?.[message.id.length - 1] === \"HumanMessage\"\n ) {\n role = \"user\";\n } else if (\n (message as any)?._getType?.() === \"ai\" ||\n message.id?.[message.id.length - 1] === \"AIMessage\"\n ) {\n role = \"assistant\";\n } else if (\n (message as any)?._getType?.() === \"system\" ||\n message.id?.[message.id.length - 1] === \"SystemMessage\"\n ) {\n role = \"system\";\n } else if (\n (message as any)?._getType?.() === \"function\" ||\n message.id?.[message.id.length - 1] === \"FunctionMessage\"\n ) {\n role = \"function\";\n } else if (\n (message as any)?._getType?.() === \"tool\" ||\n message.id?.[message.id.length - 1] === \"ToolMessage\"\n ) {\n role = \"tool\";\n }\n }\n\n const content: ChatMessage[\"content\"] =\n typeof (message as any).content === \"string\"\n ? ((message as any).content as string)\n : (message as any).content == null\n ? null\n : Array.isArray((message as any).content)\n ? (message as any).content.map(\n (c: any): ChatRichContent =>\n c?.type === \"text\"\n ? { type: \"text\", text: c.text }\n : c?.type === \"image_url\"\n ? { type: \"image_url\", image_url: c.image_url }\n : { type: \"text\", text: JSON.stringify(c) }\n )\n : JSON.stringify((message as any).content);\n\n const functionCall = (message as any).additional_kwargs;\n\n return {\n role,\n content,\n ...(functionCall &&\n typeof functionCall === \"object\" &&\n Object.keys(functionCall).length > 0\n ? { function_call: functionCall }\n : {}),\n };\n}\n\nfunction className(serialized?: Serialized): string {\n const id = (serialized as any)?.id;\n if (Array.isArray(id) && id.length) return String(id[id.length - 1]);\n const ns = (serialized as any)?.lc_namespace;\n if (Array.isArray(ns) && ns.length) return String(ns[ns.length - 1]);\n\n return \"\";\n}\n\nfunction shorten(str: string, max = 120): string {\n return typeof str === \"string\" && str.length > max\n ? str.slice(0, max - 1) + \"…\"\n : str;\n}\n\nfunction previewInput(v: unknown): string | undefined {\n if (typeof v === \"string\") {\n const s = v.trim();\n return s ? shorten(s, 120) : void 0;\n }\n return void 0;\n}\n\nfunction ctxSkip(serialized?: Serialized, tags?: string[]) {\n const cls = className(serialized);\n return (\n cls.startsWith(\"ChannelWrite\") ||\n (tags?.includes(\"langsmith:hidden\") ?? false)\n );\n}\n\nfunction wrapNonScalarValues(\n value: unknown\n): string | number | boolean | undefined {\n if (value === void 0) return void 0;\n if (value === null) return JSON.stringify(null);\n if (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\"\n )\n return value;\n\n // Special-case: ChatMessage[] detection via zod schema the project already has\n const chatMessages = chatMessageSchema.array().safeParse(value as any);\n if (Array.isArray(value) && chatMessages.success) {\n return JSON.stringify({ type: \"chat_messages\", value: chatMessages.data });\n }\n\n try {\n const seen = new WeakSet();\n const json = JSON.stringify(value as any, (k, val) => {\n if (typeof val === \"object\" && val !== null) {\n if (seen.has(val)) return \"[Circular]\";\n seen.add(val);\n }\n return val;\n });\n return json;\n } catch {\n return JSON.stringify({ type: \"raw\", value: \"[Non-Serializable]\" });\n }\n}\n\nfunction addLangChainEvent(\n span: LangWatchSpan,\n eventName: string,\n runId: string,\n parentRunId: string | undefined,\n tags?: string[],\n metadata?: Record<string, unknown>,\n attributes?: Attributes\n) {\n const attrs: Attributes = {\n \"langwatch.langchain.run.id\": runId,\n \"langwatch.langchain.run.parent_id\": parentRunId,\n \"langwatch.langchain.event.name\": eventName,\n ...attributes,\n };\n\n if (tags?.length) attrs[\"langwatch.langchain.run.tags\"] = tags.slice(0, 50);\n if (metadata) {\n Object.entries(metadata).forEach(([key, value]) => {\n attrs[key] = wrapNonScalarValues(value);\n });\n }\n\n span.addEvent(\"langwatch.langchain.callback\", attrs);\n}\n\nfunction setLangGraphAttributes(\n span: LangWatchSpan,\n metadata?: Record<string, unknown>\n) {\n if (!metadata) return;\n const keys = Object.keys(metadata);\n for (const key of keys) {\n const value = (metadata as any)[key];\n if (value !== undefined) {\n const wrapped = wrapNonScalarValues(value);\n if (wrapped !== undefined) {\n span.setAttribute(\n `langwatch.langgraph.${key}` as const,\n wrapped as any\n );\n }\n }\n }\n}\n\nfunction buildLangChainMetadataAttributes(metadata: Record<string, unknown>) {\n if (!metadata) return {};\n return Object.fromEntries(\n Object.entries(metadata)\n .filter(([key]) => !LANGGRAPH_METADATA_KEYS.has(key))\n .map(([key, value]) => [\n `langwatch.langchain.run.metadata.${key}`,\n wrapNonScalarValues(value),\n ])\n );\n}\n\nfunction applyGenAIAttrs(\n span: LangWatchSpan,\n metadata?: Record<string, unknown>,\n extraParams?: Record<string, unknown>\n) {\n const md = (metadata ?? {}) as any;\n const ex = (extraParams ?? {}) as any;\n\n const provider = md.ls_provider as string | undefined;\n const requestModel = md.ls_model_name ?? md.kwargs?.model ?? ex.kwargs?.model;\n const temperature =\n md.ls_temperature ?? md.kwargs?.temperature ?? ex.kwargs?.temperature;\n const responseModel = md.response_metadata?.model_name as string | undefined;\n\n if (provider) span.setAttribute(\"gen_ai.system\", provider);\n if (requestModel) span.setAttribute(\"gen_ai.request.model\", requestModel);\n if (typeof temperature === \"number\")\n span.setAttribute(\"gen_ai.request.temperature\", temperature);\n if (responseModel) span.setAttribute(\"gen_ai.response.model\", responseModel);\n}\n\nfunction getResolvedParentContext(\n runId: string | undefined,\n spans: Record<string, LangWatchSpan | undefined>,\n parentOf: Record<string, string | undefined>\n) {\n let cur = runId;\n while (cur) {\n const s = spans[cur];\n if (s) return trace.setSpan(context.active(), s);\n cur = parentOf[cur];\n }\n return context.active();\n}\n\nfunction deriveNameAndType(opts: {\n runType: RunKind;\n name?: string;\n serialized?: Serialized;\n metadata?: Record<string, unknown>;\n tags?: string[];\n inputs?: unknown;\n}): { name: string; type: \"llm\" | \"chain\" | \"tool\" | \"rag\" | \"component\" } {\n const { runType, name, serialized, metadata, inputs } = opts;\n\n // user-specified name / metadata override\n const hardName = (name?.trim() ?? (metadata as any)?.operation_name) as\n | string\n | undefined;\n if (hardName) {\n return {\n name: hardName,\n type:\n runType === \"tool\"\n ? \"tool\"\n : runType === \"retriever\"\n ? \"rag\"\n : runType === \"llm\" || runType === \"chat\"\n ? \"llm\"\n : \"chain\",\n };\n }\n\n const cls = className(serialized);\n const md = (metadata ?? {}) as any;\n\n // LangGraph node / router - prioritize routers over nodes\n const hasNode = md?.langgraph_node != null;\n const hasTriggers = Array.isArray(md?.langgraph_triggers) && md.langgraph_triggers.length > 0;\n const isRouter =\n cls.startsWith(\"Branch<\") || hasTriggers;\n const isGraphRunner = md?.langgraph_path && !md?.langgraph_node;\n\n // LLM / Chat - always prioritize runType over metadata\n if (runType === \"llm\" || runType === \"chat\") {\n const prov = (md?.ls_provider as string) ?? \"LLM\";\n const model = (md?.ls_model_name as string) ?? (cls || \"call\");\n const temp = md?.ls_temperature;\n const tempStr =\n temp != null\n ? typeof temp === \"number\"\n ? temp.toString()\n : JSON.stringify(temp)\n : null;\n const nm =\n tempStr != null\n ? `${prov} ${model} (temp ${tempStr})`\n : `${prov} ${model}`;\n return { name: nm, type: \"llm\" };\n }\n\n // Prioritize LangGraph routers over nodes (but after LLM/Chat)\n if (isRouter) {\n const pathArr = md?.langgraph_path as string[] | undefined;\n const fromNode =\n Array.isArray(pathArr) && pathArr.length\n ? pathArr[pathArr.length - 1]\n : undefined;\n const decision = Array.isArray(md?.langgraph_triggers)\n ? String(\n md.langgraph_triggers.find((t: any) =>\n String(t).startsWith(\"branch:\")\n ) ?? \"\"\n ).replace(/^branch:(to:)?/, \"\")\n : undefined;\n const nm = `Route: ${fromNode ?? \"unknown\"} → ${decision ?? \"unknown\"}`;\n return { name: nm, type: \"component\" };\n }\n\n if (hasNode) {\n const step = md?.langgraph_step;\n const nm = `Node: ${md.langgraph_node}${\n step != null ? ` (step ${String(step)})` : \"\"\n }`;\n return { name: nm, type: \"component\" };\n }\n if (isGraphRunner && runType === \"chain\") {\n return { name: \"Graph: LangGraph\", type: \"chain\" };\n }\n\n // Tool\n if (runType === \"tool\") {\n const tool = (metadata as any)?.name ?? (cls || \"tool\");\n const prev =\n previewInput(inputs) ?? previewInput((serialized as any)?.input);\n return {\n name: prev ? `Tool: ${tool} — ${prev}` : `Tool: ${tool}`,\n type: \"tool\",\n };\n }\n\n // Retriever\n if (runType === \"retriever\") return { name: \"Retriever\", type: \"rag\" };\n\n // Fallbacks\n if (cls.includes(\"Agent\"))\n return { name: `Agent: ${cls}`, type: \"component\" };\n if (cls.startsWith(\"Runnable\"))\n return { name: `Runnable: ${cls.replace(/^Runnable/, \"\")}`, type: \"chain\" };\n return { name: cls || \"LangChain operation\", type: \"chain\" };\n}\n\n// Export helper functions for testing\nexport {\n className,\n shorten,\n previewInput,\n ctxSkip,\n wrapNonScalarValues,\n addLangChainEvent,\n setLangGraphAttributes,\n buildLangChainMetadataAttributes,\n applyGenAIAttrs,\n getResolvedParentContext,\n deriveNameAndType,\n};\n"]}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
chatMessageSchema,
|
|
3
3
|
getLangWatchTracer
|
|
4
|
-
} from "../../../chunk-
|
|
4
|
+
} from "../../../chunk-3QHURXIZ.mjs";
|
|
5
5
|
import {
|
|
6
|
+
__spreadValues,
|
|
6
7
|
shouldCaptureInput,
|
|
7
8
|
shouldCaptureOutput
|
|
8
|
-
} from "../../../chunk-
|
|
9
|
-
import "../../../chunk-PONU4KJX.mjs";
|
|
10
|
-
import {
|
|
11
|
-
__spreadValues
|
|
12
|
-
} from "../../../chunk-BAX4W3AY.mjs";
|
|
9
|
+
} from "../../../chunk-L5KBRKHS.mjs";
|
|
13
10
|
|
|
14
11
|
// src/observability-sdk/instrumentation/langchain/index.ts
|
|
15
12
|
import { BaseCallbackHandler } from "@langchain/core/callbacks/base";
|