langwatch 0.33.2 → 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/README.md +10 -8
- package/dist/{chunk-YQNOLNAK.mjs → chunk-2O4ILSP5.mjs} +2 -2
- package/dist/{chunk-PVOHCPWP.mjs → chunk-3QHURXIZ.mjs} +149 -7
- package/dist/chunk-3QHURXIZ.mjs.map +1 -0
- package/dist/{chunk-O75KIBCK.js → chunk-53AMPF5E.js} +16 -22
- package/dist/chunk-53AMPF5E.js.map +1 -0
- package/dist/{chunk-GW2YXZYN.js → chunk-EDWIKCYX.js} +130 -48
- package/dist/chunk-EDWIKCYX.js.map +1 -0
- package/dist/{chunk-FLYABTMA.js → chunk-HBVGKWJK.js} +160 -18
- package/dist/chunk-HBVGKWJK.js.map +1 -0
- package/dist/{chunk-2PNM3JZ7.js → chunk-IUSLT65Z.js} +2 -2
- package/dist/{chunk-2PNM3JZ7.js.map → chunk-IUSLT65Z.js.map} +1 -1
- package/dist/{chunk-QAZHQ7SZ.mjs → chunk-KH2GOLFO.mjs} +104 -22
- package/dist/chunk-KH2GOLFO.mjs.map +1 -0
- package/dist/{chunk-GVFRS2UN.mjs → chunk-L5KBRKHS.mjs} +111 -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-QGGX6LSK.mjs → chunk-XMAFHMLS.mjs} +10 -16
- package/dist/{chunk-QGGX6LSK.mjs.map → chunk-XMAFHMLS.mjs.map} +1 -1
- package/dist/cli/bundle.js +3768 -0
- package/dist/cli/index.js +10 -1333
- package/dist/{implementation-Cbelb5TK.d.ts → implementation-CMWs8g5L.d.ts} +3 -3
- package/dist/{implementation-Oz1fNv8p.d.mts → implementation-Cv1hPZBQ.d.mts} +3 -3
- package/dist/index.d.mts +263 -17
- package/dist/index.d.ts +263 -17
- package/dist/index.js +4838 -1382
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4808 -1352
- 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 +6 -9
- package/dist/observability-sdk/index.js.map +1 -1
- package/dist/observability-sdk/index.mjs +7 -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-BNbQoBnh.d.mts → types-D-yAkWoC.d.ts} +256 -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-CmMOt86P.d.ts → types-bfBzGB7S.d.mts} +256 -3
- package/package.json +24 -17
- package/dist/add-52KP5RUX.mjs +0 -148
- package/dist/add-52KP5RUX.mjs.map +0 -1
- package/dist/add-7Y6MH725.js +0 -148
- package/dist/add-7Y6MH725.js.map +0 -1
- package/dist/archive-MHACABLP.js +0 -41
- package/dist/archive-MHACABLP.js.map +0 -1
- package/dist/archive-ZKTGGFDU.mjs +0 -41
- package/dist/archive-ZKTGGFDU.mjs.map +0 -1
- package/dist/assign-NCK27ZW5.js +0 -54
- package/dist/assign-NCK27ZW5.js.map +0 -1
- package/dist/assign-W7HMZLLA.mjs +0 -54
- package/dist/assign-W7HMZLLA.mjs.map +0 -1
- package/dist/chunk-26WXZOLY.js +0 -70
- package/dist/chunk-26WXZOLY.js.map +0 -1
- package/dist/chunk-2VVANTLB.js +0 -68
- package/dist/chunk-2VVANTLB.js.map +0 -1
- package/dist/chunk-2XTZ7GBC.mjs +0 -90
- package/dist/chunk-2XTZ7GBC.mjs.map +0 -1
- package/dist/chunk-3BDHATON.js +0 -36
- package/dist/chunk-3BDHATON.js.map +0 -1
- package/dist/chunk-3CPA262Z.mjs +0 -124
- package/dist/chunk-3CPA262Z.mjs.map +0 -1
- package/dist/chunk-43OERQAS.js +0 -96
- package/dist/chunk-43OERQAS.js.map +0 -1
- package/dist/chunk-4F3LCT7U.js +0 -42
- package/dist/chunk-4F3LCT7U.js.map +0 -1
- package/dist/chunk-4VOXYSVX.mjs +0 -196
- package/dist/chunk-4VOXYSVX.mjs.map +0 -1
- package/dist/chunk-5C7DPGRK.mjs +0 -34
- package/dist/chunk-5C7DPGRK.mjs.map +0 -1
- package/dist/chunk-5U4XEWEX.mjs +0 -136
- package/dist/chunk-5U4XEWEX.mjs.map +0 -1
- package/dist/chunk-7YJMKWOH.mjs +0 -80
- package/dist/chunk-7YJMKWOH.mjs.map +0 -1
- package/dist/chunk-A6HNRJNS.js +0 -92
- package/dist/chunk-A6HNRJNS.js.map +0 -1
- package/dist/chunk-AJUCX3LD.mjs +0 -40
- package/dist/chunk-AJUCX3LD.mjs.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-BMBIZJCM.js +0 -103
- package/dist/chunk-BMBIZJCM.js.map +0 -1
- package/dist/chunk-BRPEG3YQ.js +0 -62
- package/dist/chunk-BRPEG3YQ.js.map +0 -1
- package/dist/chunk-BU2DXABO.mjs +0 -85
- package/dist/chunk-BU2DXABO.mjs.map +0 -1
- package/dist/chunk-BWALMZEU.mjs +0 -101
- package/dist/chunk-BWALMZEU.mjs.map +0 -1
- package/dist/chunk-C5Y772G7.js +0 -152
- package/dist/chunk-C5Y772G7.js.map +0 -1
- package/dist/chunk-C6ZREBUA.js +0 -300
- package/dist/chunk-C6ZREBUA.js.map +0 -1
- package/dist/chunk-CEJY6QI3.mjs +0 -508
- package/dist/chunk-CEJY6QI3.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-DBKEEEEC.js +0 -66
- package/dist/chunk-DBKEEEEC.js.map +0 -1
- package/dist/chunk-DC7HLQID.mjs +0 -51
- package/dist/chunk-DC7HLQID.mjs.map +0 -1
- package/dist/chunk-DTEKJ3UD.mjs +0 -66
- package/dist/chunk-DTEKJ3UD.mjs.map +0 -1
- package/dist/chunk-DZTI6GOB.mjs +0 -36
- package/dist/chunk-DZTI6GOB.mjs.map +0 -1
- package/dist/chunk-E5ZEMGE7.mjs +0 -63
- package/dist/chunk-E5ZEMGE7.mjs.map +0 -1
- package/dist/chunk-EGOB3GIL.mjs +0 -156
- package/dist/chunk-EGOB3GIL.mjs.map +0 -1
- package/dist/chunk-F4FGQZND.mjs +0 -348
- package/dist/chunk-F4FGQZND.mjs.map +0 -1
- package/dist/chunk-FAXQN7S5.js +0 -68
- package/dist/chunk-FAXQN7S5.js.map +0 -1
- package/dist/chunk-FG3JQBJB.mjs +0 -68
- package/dist/chunk-FG3JQBJB.mjs.map +0 -1
- package/dist/chunk-FLYABTMA.js.map +0 -1
- package/dist/chunk-FMPW7DZ3.mjs +0 -80
- package/dist/chunk-FMPW7DZ3.mjs.map +0 -1
- package/dist/chunk-GIT5RVG4.mjs +0 -76
- package/dist/chunk-GIT5RVG4.mjs.map +0 -1
- package/dist/chunk-GVFRS2UN.mjs.map +0 -1
- package/dist/chunk-GW2YXZYN.js.map +0 -1
- package/dist/chunk-H2DTN2TK.mjs +0 -70
- package/dist/chunk-H2DTN2TK.mjs.map +0 -1
- package/dist/chunk-HKFNWLCD.js +0 -663
- package/dist/chunk-HKFNWLCD.js.map +0 -1
- package/dist/chunk-I2663VLP.js +0 -85
- package/dist/chunk-I2663VLP.js.map +0 -1
- package/dist/chunk-I6QOTFMP.mjs +0 -53
- package/dist/chunk-I6QOTFMP.mjs.map +0 -1
- package/dist/chunk-IRBHL4BD.js +0 -80
- package/dist/chunk-IRBHL4BD.js.map +0 -1
- package/dist/chunk-IRVNIJXP.js +0 -51
- package/dist/chunk-IRVNIJXP.js.map +0 -1
- package/dist/chunk-IXYZL7U2.js +0 -65
- package/dist/chunk-IXYZL7U2.js.map +0 -1
- package/dist/chunk-J3KM7ZO7.mjs +0 -152
- package/dist/chunk-J3KM7ZO7.mjs.map +0 -1
- package/dist/chunk-JBEVRIYW.mjs +0 -894
- package/dist/chunk-JBEVRIYW.mjs.map +0 -1
- package/dist/chunk-JOLGDU7Q.mjs +0 -65
- package/dist/chunk-JOLGDU7Q.mjs.map +0 -1
- package/dist/chunk-KT6HZNPV.js +0 -36
- package/dist/chunk-KT6HZNPV.js.map +0 -1
- package/dist/chunk-KUEKEUKX.mjs +0 -36
- package/dist/chunk-KUEKEUKX.mjs.map +0 -1
- package/dist/chunk-KW2W5KVS.mjs +0 -22
- package/dist/chunk-KW2W5KVS.mjs.map +0 -1
- package/dist/chunk-LEJQMDGN.js +0 -894
- package/dist/chunk-LEJQMDGN.js.map +0 -1
- package/dist/chunk-M3WJZUOE.js +0 -13
- package/dist/chunk-M3WJZUOE.js.map +0 -1
- package/dist/chunk-M52LTOUT.js +0 -1433
- package/dist/chunk-M52LTOUT.js.map +0 -1
- package/dist/chunk-MHMMZ653.js +0 -40
- package/dist/chunk-MHMMZ653.js.map +0 -1
- package/dist/chunk-MLGGUNZK.js +0 -90
- package/dist/chunk-MLGGUNZK.js.map +0 -1
- package/dist/chunk-N37FLXEP.js +0 -76
- package/dist/chunk-N37FLXEP.js.map +0 -1
- package/dist/chunk-NC42BNF4.js +0 -63
- package/dist/chunk-NC42BNF4.js.map +0 -1
- package/dist/chunk-NNPQSPYD.js +0 -348
- package/dist/chunk-NNPQSPYD.js.map +0 -1
- package/dist/chunk-NW4HASQV.js +0 -80
- package/dist/chunk-NW4HASQV.js.map +0 -1
- package/dist/chunk-NYCKS3GG.js +0 -20
- package/dist/chunk-NYCKS3GG.js.map +0 -1
- package/dist/chunk-O444ZEPO.mjs +0 -300
- package/dist/chunk-O444ZEPO.mjs.map +0 -1
- package/dist/chunk-O75KIBCK.js.map +0 -1
- package/dist/chunk-OGAE7BVQ.js +0 -67
- package/dist/chunk-OGAE7BVQ.js.map +0 -1
- package/dist/chunk-OJ4URNYC.mjs +0 -54
- package/dist/chunk-OJ4URNYC.mjs.map +0 -1
- package/dist/chunk-ONN7U6WN.js +0 -54
- package/dist/chunk-ONN7U6WN.js.map +0 -1
- package/dist/chunk-OUJ7Z4TK.mjs +0 -103
- package/dist/chunk-OUJ7Z4TK.mjs.map +0 -1
- package/dist/chunk-PVOHCPWP.mjs.map +0 -1
- package/dist/chunk-PXW5C7HA.js +0 -36
- package/dist/chunk-PXW5C7HA.js.map +0 -1
- package/dist/chunk-Q7AHHFC3.mjs +0 -20
- package/dist/chunk-Q7AHHFC3.mjs.map +0 -1
- package/dist/chunk-QAZHQ7SZ.mjs.map +0 -1
- package/dist/chunk-R3PLRKDO.mjs +0 -68
- package/dist/chunk-R3PLRKDO.mjs.map +0 -1
- package/dist/chunk-S4JKLESF.js +0 -124
- package/dist/chunk-S4JKLESF.js.map +0 -1
- package/dist/chunk-SBBELZKD.js +0 -101
- package/dist/chunk-SBBELZKD.js.map +0 -1
- package/dist/chunk-SIIRLUO4.js +0 -136
- package/dist/chunk-SIIRLUO4.js.map +0 -1
- package/dist/chunk-SIXSSID3.mjs +0 -43
- package/dist/chunk-SIXSSID3.mjs.map +0 -1
- package/dist/chunk-SRGYS3N7.js +0 -196
- package/dist/chunk-SRGYS3N7.js.map +0 -1
- package/dist/chunk-SUANHT23.mjs +0 -92
- package/dist/chunk-SUANHT23.mjs.map +0 -1
- package/dist/chunk-SWPMKS2X.mjs +0 -1433
- package/dist/chunk-SWPMKS2X.mjs.map +0 -1
- package/dist/chunk-T7AFY3JF.js +0 -63
- package/dist/chunk-T7AFY3JF.js.map +0 -1
- package/dist/chunk-U47MQ6CS.mjs +0 -67
- package/dist/chunk-U47MQ6CS.mjs.map +0 -1
- package/dist/chunk-U4PE5N4K.js +0 -34
- package/dist/chunk-U4PE5N4K.js.map +0 -1
- package/dist/chunk-VS22JXRY.js +0 -133
- package/dist/chunk-VS22JXRY.js.map +0 -1
- package/dist/chunk-W2BNKVWJ.mjs +0 -36
- package/dist/chunk-W2BNKVWJ.mjs.map +0 -1
- package/dist/chunk-W35QTHIH.mjs +0 -63
- package/dist/chunk-W35QTHIH.mjs.map +0 -1
- package/dist/chunk-W7DAEYAO.js +0 -53
- package/dist/chunk-W7DAEYAO.js.map +0 -1
- package/dist/chunk-WZTRPR6A.js +0 -43
- package/dist/chunk-WZTRPR6A.js.map +0 -1
- package/dist/chunk-X4BHZH7P.js +0 -156
- package/dist/chunk-X4BHZH7P.js.map +0 -1
- package/dist/chunk-X6NSR74I.mjs +0 -663
- package/dist/chunk-X6NSR74I.mjs.map +0 -1
- package/dist/chunk-XHQP55GA.mjs +0 -42
- package/dist/chunk-XHQP55GA.mjs.map +0 -1
- package/dist/chunk-XLJ5GJTK.mjs +0 -42
- package/dist/chunk-XLJ5GJTK.mjs.map +0 -1
- package/dist/chunk-XMAAQWBG.mjs +0 -96
- package/dist/chunk-XMAAQWBG.mjs.map +0 -1
- package/dist/chunk-YBLYQYXL.js +0 -22
- package/dist/chunk-YBLYQYXL.js.map +0 -1
- package/dist/chunk-YF4IFY2X.js +0 -42
- package/dist/chunk-YF4IFY2X.js.map +0 -1
- package/dist/chunk-YIACSQXG.mjs +0 -66
- package/dist/chunk-YIACSQXG.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-ZFFJYYDN.js +0 -508
- package/dist/chunk-ZFFJYYDN.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 -1334
- package/dist/cli/index.mjs.map +0 -1
- package/dist/config-QAMXJYXX.js +0 -96
- package/dist/config-QAMXJYXX.js.map +0 -1
- package/dist/config-VPRQKJMJ.mjs +0 -96
- package/dist/config-VPRQKJMJ.mjs.map +0 -1
- package/dist/create-2FRM4WVA.mjs +0 -52
- package/dist/create-2FRM4WVA.mjs.map +0 -1
- package/dist/create-34FEJBYM.js +0 -49
- package/dist/create-34FEJBYM.js.map +0 -1
- package/dist/create-36DDGEPS.js +0 -50
- package/dist/create-36DDGEPS.js.map +0 -1
- package/dist/create-3IUBLMI7.mjs +0 -43
- package/dist/create-3IUBLMI7.mjs.map +0 -1
- package/dist/create-3NCRMEMB.mjs +0 -72
- package/dist/create-3NCRMEMB.mjs.map +0 -1
- package/dist/create-4GFIXF5E.mjs +0 -58
- package/dist/create-4GFIXF5E.mjs.map +0 -1
- package/dist/create-4ODQ66VV.mjs +0 -91
- package/dist/create-4ODQ66VV.mjs.map +0 -1
- package/dist/create-5TFOS2OJ.mjs +0 -42
- package/dist/create-5TFOS2OJ.mjs.map +0 -1
- package/dist/create-7OBPYNWK.js +0 -42
- package/dist/create-7OBPYNWK.js.map +0 -1
- package/dist/create-ACC73K6P.mjs +0 -87
- package/dist/create-ACC73K6P.mjs.map +0 -1
- package/dist/create-DRTKTUVY.js +0 -48
- package/dist/create-DRTKTUVY.js.map +0 -1
- package/dist/create-DYCE3DG5.mjs +0 -75
- package/dist/create-DYCE3DG5.mjs.map +0 -1
- package/dist/create-EASGLRR7.js +0 -58
- package/dist/create-EASGLRR7.js.map +0 -1
- package/dist/create-EBEOJS2H.mjs +0 -50
- package/dist/create-EBEOJS2H.mjs.map +0 -1
- package/dist/create-FJMGFFCM.mjs +0 -92
- package/dist/create-FJMGFFCM.mjs.map +0 -1
- package/dist/create-I5INSZYR.mjs +0 -88
- package/dist/create-I5INSZYR.mjs.map +0 -1
- package/dist/create-IPLFOXBK.js +0 -91
- package/dist/create-IPLFOXBK.js.map +0 -1
- package/dist/create-IZAVSAXI.js +0 -72
- package/dist/create-IZAVSAXI.js.map +0 -1
- package/dist/create-P3647AMU.mjs +0 -94
- package/dist/create-P3647AMU.mjs.map +0 -1
- package/dist/create-PL3BMGB5.js +0 -43
- package/dist/create-PL3BMGB5.js.map +0 -1
- package/dist/create-Q6WY7YSF.js +0 -52
- package/dist/create-Q6WY7YSF.js.map +0 -1
- package/dist/create-RGZUQUZO.js +0 -94
- package/dist/create-RGZUQUZO.js.map +0 -1
- package/dist/create-SPAXSFIN.mjs +0 -88
- package/dist/create-SPAXSFIN.mjs.map +0 -1
- package/dist/create-SYHW6YGS.js +0 -88
- package/dist/create-SYHW6YGS.js.map +0 -1
- package/dist/create-T3V4JRJQ.mjs +0 -71
- package/dist/create-T3V4JRJQ.mjs.map +0 -1
- package/dist/create-TCP2VODP.js +0 -88
- package/dist/create-TCP2VODP.js.map +0 -1
- package/dist/create-TZ76BDWV.mjs +0 -49
- package/dist/create-TZ76BDWV.mjs.map +0 -1
- package/dist/create-UKY4IZ7G.js +0 -87
- package/dist/create-UKY4IZ7G.js.map +0 -1
- package/dist/create-WGU3PIT2.js +0 -71
- package/dist/create-WGU3PIT2.js.map +0 -1
- package/dist/create-WTO4NPVP.js +0 -75
- package/dist/create-WTO4NPVP.js.map +0 -1
- package/dist/create-XPJS3IZT.mjs +0 -48
- package/dist/create-XPJS3IZT.mjs.map +0 -1
- package/dist/create-ZBLKIRIH.js +0 -23
- package/dist/create-ZBLKIRIH.js.map +0 -1
- package/dist/create-ZU4LXLBN.mjs +0 -23
- package/dist/create-ZU4LXLBN.mjs.map +0 -1
- package/dist/create-ZW3J4VVP.js +0 -92
- package/dist/create-ZW3J4VVP.js.map +0 -1
- package/dist/delete-3PMEY5RH.mjs +0 -42
- package/dist/delete-3PMEY5RH.mjs.map +0 -1
- package/dist/delete-6FRZ6LJJ.mjs +0 -61
- package/dist/delete-6FRZ6LJJ.mjs.map +0 -1
- package/dist/delete-7KSO3V3O.js +0 -39
- package/dist/delete-7KSO3V3O.js.map +0 -1
- package/dist/delete-BPKFSXIY.js +0 -52
- package/dist/delete-BPKFSXIY.js.map +0 -1
- package/dist/delete-BSYUEGEX.js +0 -52
- package/dist/delete-BSYUEGEX.js.map +0 -1
- package/dist/delete-DOIVCA44.js +0 -52
- package/dist/delete-DOIVCA44.js.map +0 -1
- package/dist/delete-DSDE42CQ.js +0 -41
- package/dist/delete-DSDE42CQ.js.map +0 -1
- package/dist/delete-E2O6CPEK.mjs +0 -38
- package/dist/delete-E2O6CPEK.mjs.map +0 -1
- package/dist/delete-FLA25Y4H.js +0 -39
- package/dist/delete-FLA25Y4H.js.map +0 -1
- package/dist/delete-G5IYZ6R5.mjs +0 -59
- package/dist/delete-G5IYZ6R5.mjs.map +0 -1
- package/dist/delete-HZIBPYQY.js +0 -61
- package/dist/delete-HZIBPYQY.js.map +0 -1
- package/dist/delete-IRJG3K2J.mjs +0 -41
- package/dist/delete-IRJG3K2J.mjs.map +0 -1
- package/dist/delete-JMX33YI4.mjs +0 -52
- package/dist/delete-JMX33YI4.mjs.map +0 -1
- package/dist/delete-KNAPRRCM.js +0 -44
- package/dist/delete-KNAPRRCM.js.map +0 -1
- package/dist/delete-M7EG5VPB.mjs +0 -39
- package/dist/delete-M7EG5VPB.mjs.map +0 -1
- package/dist/delete-MSAI4E5L.js +0 -52
- package/dist/delete-MSAI4E5L.js.map +0 -1
- package/dist/delete-NH4NQLFP.mjs +0 -57
- package/dist/delete-NH4NQLFP.mjs.map +0 -1
- package/dist/delete-NPKRSFGU.js +0 -57
- package/dist/delete-NPKRSFGU.js.map +0 -1
- package/dist/delete-POZCY7IQ.mjs +0 -52
- package/dist/delete-POZCY7IQ.mjs.map +0 -1
- package/dist/delete-R2HXHQBB.js +0 -42
- package/dist/delete-R2HXHQBB.js.map +0 -1
- package/dist/delete-TSXQER52.js +0 -59
- package/dist/delete-TSXQER52.js.map +0 -1
- package/dist/delete-U655HP5R.mjs +0 -39
- package/dist/delete-U655HP5R.mjs.map +0 -1
- package/dist/delete-UERL72WN.js +0 -38
- package/dist/delete-UERL72WN.js.map +0 -1
- package/dist/delete-UTKUA6Z4.mjs +0 -52
- package/dist/delete-UTKUA6Z4.mjs.map +0 -1
- package/dist/delete-WP3JYGLE.mjs +0 -59
- package/dist/delete-WP3JYGLE.mjs.map +0 -1
- package/dist/delete-X6JLYJCH.js +0 -59
- package/dist/delete-X6JLYJCH.js.map +0 -1
- package/dist/delete-XAUAF53M.mjs +0 -52
- package/dist/delete-XAUAF53M.mjs.map +0 -1
- package/dist/delete-YT3ID37D.mjs +0 -44
- package/dist/delete-YT3ID37D.mjs.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-F2DXRLJP.mjs +0 -100
- package/dist/download-F2DXRLJP.mjs.map +0 -1
- package/dist/download-PK2DSPEO.js +0 -100
- package/dist/download-PK2DSPEO.js.map +0 -1
- package/dist/duplicate-B7OUVDVB.mjs +0 -45
- package/dist/duplicate-B7OUVDVB.mjs.map +0 -1
- package/dist/duplicate-IGMNYMPS.js +0 -45
- package/dist/duplicate-IGMNYMPS.js.map +0 -1
- package/dist/export-SNBK2AV4.mjs +0 -103
- package/dist/export-SNBK2AV4.mjs.map +0 -1
- package/dist/export-VIEFMUVQ.js +0 -103
- package/dist/export-VIEFMUVQ.js.map +0 -1
- package/dist/get-45ULRVIG.js +0 -49
- package/dist/get-45ULRVIG.js.map +0 -1
- package/dist/get-4NKLZBDS.mjs +0 -85
- package/dist/get-4NKLZBDS.mjs.map +0 -1
- package/dist/get-5HAYNLXN.js +0 -85
- package/dist/get-5HAYNLXN.js.map +0 -1
- package/dist/get-6CNGBUW6.js +0 -71
- package/dist/get-6CNGBUW6.js.map +0 -1
- package/dist/get-6ECLGAOQ.js +0 -67
- package/dist/get-6ECLGAOQ.js.map +0 -1
- package/dist/get-ATD54O5U.js +0 -94
- package/dist/get-ATD54O5U.js.map +0 -1
- package/dist/get-BOXL42XW.mjs +0 -66
- package/dist/get-BOXL42XW.mjs.map +0 -1
- package/dist/get-C6OSKZH3.js +0 -51
- package/dist/get-C6OSKZH3.js.map +0 -1
- package/dist/get-C7SCGYAT.js +0 -70
- package/dist/get-C7SCGYAT.js.map +0 -1
- package/dist/get-CLTPKM7D.mjs +0 -68
- package/dist/get-CLTPKM7D.mjs.map +0 -1
- package/dist/get-CRGWXOZP.mjs +0 -70
- package/dist/get-CRGWXOZP.mjs.map +0 -1
- package/dist/get-D6SHECLX.mjs +0 -51
- package/dist/get-D6SHECLX.mjs.map +0 -1
- package/dist/get-EH37CXA2.js +0 -149
- package/dist/get-EH37CXA2.js.map +0 -1
- package/dist/get-FBWUXIQN.js +0 -76
- package/dist/get-FBWUXIQN.js.map +0 -1
- package/dist/get-FCJFZY5M.js +0 -56
- package/dist/get-FCJFZY5M.js.map +0 -1
- package/dist/get-H3DWTNDA.js +0 -71
- package/dist/get-H3DWTNDA.js.map +0 -1
- package/dist/get-JKRW7OHW.mjs +0 -52
- package/dist/get-JKRW7OHW.mjs.map +0 -1
- package/dist/get-KS3QMH5A.mjs +0 -76
- package/dist/get-KS3QMH5A.mjs.map +0 -1
- package/dist/get-NP6FEVLY.mjs +0 -49
- package/dist/get-NP6FEVLY.mjs.map +0 -1
- package/dist/get-P7W3V3CB.mjs +0 -52
- package/dist/get-P7W3V3CB.mjs.map +0 -1
- package/dist/get-QO7VEIRN.mjs +0 -149
- package/dist/get-QO7VEIRN.mjs.map +0 -1
- package/dist/get-QUXBSMZE.js +0 -52
- package/dist/get-QUXBSMZE.js.map +0 -1
- package/dist/get-ROAE6T5N.mjs +0 -56
- package/dist/get-ROAE6T5N.mjs.map +0 -1
- package/dist/get-RYIZPF25.mjs +0 -71
- package/dist/get-RYIZPF25.mjs.map +0 -1
- package/dist/get-T5BHOLX2.js +0 -68
- package/dist/get-T5BHOLX2.js.map +0 -1
- package/dist/get-TITUKTHE.mjs +0 -71
- package/dist/get-TITUKTHE.mjs.map +0 -1
- package/dist/get-UOZBGGCG.mjs +0 -71
- package/dist/get-UOZBGGCG.mjs.map +0 -1
- package/dist/get-WW7HVSUY.mjs +0 -67
- package/dist/get-WW7HVSUY.mjs.map +0 -1
- package/dist/get-XDNDTHQU.js +0 -71
- package/dist/get-XDNDTHQU.js.map +0 -1
- package/dist/get-YPCHKUHM.js +0 -52
- package/dist/get-YPCHKUHM.js.map +0 -1
- package/dist/get-ZLSHYP57.js +0 -66
- package/dist/get-ZLSHYP57.js.map +0 -1
- package/dist/get-ZXTDMVWX.mjs +0 -94
- package/dist/get-ZXTDMVWX.mjs.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-AEPYN2KV.mjs +0 -72
- package/dist/init-shell-AEPYN2KV.mjs.map +0 -1
- package/dist/init-shell-ULEEQ522.js +0 -72
- package/dist/init-shell-ULEEQ522.js.map +0 -1
- package/dist/install-PQACVMPW.mjs +0 -191
- package/dist/install-PQACVMPW.mjs.map +0 -1
- package/dist/install-UAGU7V2O.js +0 -191
- package/dist/install-UAGU7V2O.js.map +0 -1
- package/dist/list-44QMJJBX.js +0 -82
- package/dist/list-44QMJJBX.js.map +0 -1
- package/dist/list-45DYTLFR.js +0 -86
- package/dist/list-45DYTLFR.js.map +0 -1
- package/dist/list-53O3I5OT.js +0 -53
- package/dist/list-53O3I5OT.js.map +0 -1
- package/dist/list-5RDJDIDE.js +0 -78
- package/dist/list-5RDJDIDE.js.map +0 -1
- package/dist/list-6ZUZ54WZ.mjs +0 -83
- package/dist/list-6ZUZ54WZ.mjs.map +0 -1
- package/dist/list-7TJVXJW3.mjs +0 -75
- package/dist/list-7TJVXJW3.mjs.map +0 -1
- package/dist/list-B5QJP7XO.mjs +0 -122
- package/dist/list-B5QJP7XO.mjs.map +0 -1
- package/dist/list-BJXU6QSV.js +0 -87
- package/dist/list-BJXU6QSV.js.map +0 -1
- package/dist/list-C4TIICKC.mjs +0 -82
- package/dist/list-C4TIICKC.mjs.map +0 -1
- package/dist/list-CH36A6CW.js +0 -80
- package/dist/list-CH36A6CW.js.map +0 -1
- package/dist/list-CSPHALVP.mjs +0 -111
- package/dist/list-CSPHALVP.mjs.map +0 -1
- package/dist/list-CSZZQTHD.mjs +0 -82
- package/dist/list-CSZZQTHD.mjs.map +0 -1
- package/dist/list-DEQI2KOQ.js +0 -72
- package/dist/list-DEQI2KOQ.js.map +0 -1
- package/dist/list-FJ2T2GJT.js +0 -104
- package/dist/list-FJ2T2GJT.js.map +0 -1
- package/dist/list-FRLZQVS6.js +0 -71
- package/dist/list-FRLZQVS6.js.map +0 -1
- package/dist/list-FYKAGJ6V.mjs +0 -87
- package/dist/list-FYKAGJ6V.mjs.map +0 -1
- package/dist/list-G3ASKJUN.mjs +0 -104
- package/dist/list-G3ASKJUN.mjs.map +0 -1
- package/dist/list-GGTQOQA4.js +0 -111
- package/dist/list-GGTQOQA4.js.map +0 -1
- package/dist/list-GL4SXZ2E.js +0 -82
- package/dist/list-GL4SXZ2E.js.map +0 -1
- package/dist/list-GYJNBKUF.mjs +0 -53
- package/dist/list-GYJNBKUF.mjs.map +0 -1
- package/dist/list-J33YMH3T.js +0 -78
- package/dist/list-J33YMH3T.js.map +0 -1
- package/dist/list-J55FWBDR.js +0 -75
- package/dist/list-J55FWBDR.js.map +0 -1
- package/dist/list-JMX456IB.js +0 -75
- package/dist/list-JMX456IB.js.map +0 -1
- package/dist/list-KX4MIAJE.mjs +0 -85
- package/dist/list-KX4MIAJE.mjs.map +0 -1
- package/dist/list-L33MTOSA.mjs +0 -80
- package/dist/list-L33MTOSA.mjs.map +0 -1
- package/dist/list-LKF24T6D.js +0 -83
- package/dist/list-LKF24T6D.js.map +0 -1
- package/dist/list-M3IEVLUD.mjs +0 -86
- package/dist/list-M3IEVLUD.mjs.map +0 -1
- package/dist/list-M77G2Y5F.js +0 -76
- package/dist/list-M77G2Y5F.js.map +0 -1
- package/dist/list-MSIHIWG5.js +0 -80
- package/dist/list-MSIHIWG5.js.map +0 -1
- package/dist/list-N4LN7RVG.mjs +0 -90
- package/dist/list-N4LN7RVG.mjs.map +0 -1
- package/dist/list-OZDM5FA6.mjs +0 -75
- package/dist/list-OZDM5FA6.mjs.map +0 -1
- package/dist/list-PKDYDBNU.js +0 -75
- package/dist/list-PKDYDBNU.js.map +0 -1
- package/dist/list-PYQZKUBA.js +0 -85
- package/dist/list-PYQZKUBA.js.map +0 -1
- package/dist/list-QZZLS5TP.js +0 -78
- package/dist/list-QZZLS5TP.js.map +0 -1
- package/dist/list-R4SZ3SMF.mjs +0 -78
- package/dist/list-R4SZ3SMF.mjs.map +0 -1
- package/dist/list-TAFBD6EY.mjs +0 -71
- package/dist/list-TAFBD6EY.mjs.map +0 -1
- package/dist/list-VJL5TZ4T.mjs +0 -72
- package/dist/list-VJL5TZ4T.mjs.map +0 -1
- package/dist/list-VKNEMSY4.mjs +0 -80
- package/dist/list-VKNEMSY4.mjs.map +0 -1
- package/dist/list-WJNJNMQC.mjs +0 -75
- package/dist/list-WJNJNMQC.mjs.map +0 -1
- package/dist/list-XRW6CP7E.js +0 -90
- package/dist/list-XRW6CP7E.js.map +0 -1
- package/dist/list-YAR5NB2Q.mjs +0 -76
- package/dist/list-YAR5NB2Q.mjs.map +0 -1
- package/dist/list-YUYYYQ7E.js +0 -122
- package/dist/list-YUYYYQ7E.js.map +0 -1
- package/dist/list-Z3YOLIK2.mjs +0 -78
- package/dist/list-Z3YOLIK2.mjs.map +0 -1
- package/dist/list-Z6OG6DLD.mjs +0 -78
- package/dist/list-Z6OG6DLD.mjs.map +0 -1
- package/dist/login-7N3FOJOH.mjs +0 -280
- package/dist/login-7N3FOJOH.mjs.map +0 -1
- package/dist/login-JC4YGO3M.js +0 -280
- package/dist/login-JC4YGO3M.js.map +0 -1
- package/dist/logout-device-J325Y37F.js +0 -39
- package/dist/logout-device-J325Y37F.js.map +0 -1
- package/dist/logout-device-JOPQKPFL.mjs +0 -39
- package/dist/logout-device-JOPQKPFL.mjs.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-GBTWGZX6.js +0 -27
- package/dist/pull-GBTWGZX6.js.map +0 -1
- package/dist/pull-VHGPIULB.mjs +0 -27
- package/dist/pull-VHGPIULB.mjs.map +0 -1
- package/dist/push-5CNRDWJU.js +0 -27
- package/dist/push-5CNRDWJU.js.map +0 -1
- package/dist/push-ZPL2UNNV.mjs +0 -27
- package/dist/push-ZPL2UNNV.mjs.map +0 -1
- package/dist/query-5R2V74N2.js +0 -122
- package/dist/query-5R2V74N2.js.map +0 -1
- package/dist/query-PRJT7GQY.mjs +0 -122
- package/dist/query-PRJT7GQY.mjs.map +0 -1
- package/dist/records-add-E3S34UNT.js +0 -98
- package/dist/records-add-E3S34UNT.js.map +0 -1
- package/dist/records-add-P2FTGDNL.mjs +0 -98
- package/dist/records-add-P2FTGDNL.mjs.map +0 -1
- package/dist/records-delete-GCB6S4F3.js +0 -46
- package/dist/records-delete-GCB6S4F3.js.map +0 -1
- package/dist/records-delete-TZATYNEX.mjs +0 -46
- package/dist/records-delete-TZATYNEX.mjs.map +0 -1
- package/dist/records-list-AI5CT26J.mjs +0 -89
- package/dist/records-list-AI5CT26J.mjs.map +0 -1
- package/dist/records-list-XXOWLCZT.js +0 -89
- package/dist/records-list-XXOWLCZT.js.map +0 -1
- package/dist/records-update-TK3HWM2C.mjs +0 -53
- package/dist/records-update-TK3HWM2C.mjs.map +0 -1
- package/dist/records-update-ZVKQVZHW.js +0 -53
- package/dist/records-update-ZVKQVZHW.js.map +0 -1
- package/dist/remove-DPTA2GMZ.js +0 -114
- package/dist/remove-DPTA2GMZ.js.map +0 -1
- package/dist/remove-XAF4RTKP.mjs +0 -114
- package/dist/remove-XAF4RTKP.mjs.map +0 -1
- package/dist/rename-AAQZTQCF.mjs +0 -42
- package/dist/rename-AAQZTQCF.mjs.map +0 -1
- package/dist/rename-YG4P5PRQ.js +0 -42
- package/dist/rename-YG4P5PRQ.js.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-6TIHZUPS.js +0 -73
- package/dist/restore-6TIHZUPS.js.map +0 -1
- package/dist/restore-VJDHJ7Y3.mjs +0 -73
- package/dist/restore-VJDHJ7Y3.mjs.map +0 -1
- package/dist/revoke-7HUYDQZ6.mjs +0 -44
- package/dist/revoke-7HUYDQZ6.mjs.map +0 -1
- package/dist/revoke-OHOLPKBQ.js +0 -44
- package/dist/revoke-OHOLPKBQ.js.map +0 -1
- package/dist/revoke-OQQ56B2Z.js +0 -41
- package/dist/revoke-OQQ56B2Z.js.map +0 -1
- package/dist/revoke-UUVPYOPV.mjs +0 -41
- package/dist/revoke-UUVPYOPV.mjs.map +0 -1
- package/dist/rotate-D2QBTQC7.js +0 -52
- package/dist/rotate-D2QBTQC7.js.map +0 -1
- package/dist/rotate-MU4L6YPU.mjs +0 -52
- package/dist/rotate-MU4L6YPU.mjs.map +0 -1
- package/dist/run-2KISYEZP.js +0 -83
- package/dist/run-2KISYEZP.js.map +0 -1
- package/dist/run-ARQ7O43R.js +0 -142
- package/dist/run-ARQ7O43R.js.map +0 -1
- package/dist/run-D4YIYYTE.mjs +0 -144
- package/dist/run-D4YIYYTE.mjs.map +0 -1
- package/dist/run-GC3RJI74.mjs +0 -131
- package/dist/run-GC3RJI74.mjs.map +0 -1
- package/dist/run-HPDENKM2.js +0 -77
- package/dist/run-HPDENKM2.js.map +0 -1
- package/dist/run-NRODARJS.js +0 -144
- package/dist/run-NRODARJS.js.map +0 -1
- package/dist/run-PC5KFO4B.mjs +0 -142
- package/dist/run-PC5KFO4B.mjs.map +0 -1
- package/dist/run-URPG3S24.mjs +0 -83
- package/dist/run-URPG3S24.mjs.map +0 -1
- package/dist/run-V3O4TEQ2.js +0 -131
- package/dist/run-V3O4TEQ2.js.map +0 -1
- package/dist/run-WWBEHGYG.mjs +0 -77
- package/dist/run-WWBEHGYG.mjs.map +0 -1
- package/dist/search-L7IAXT4D.mjs +0 -108
- package/dist/search-L7IAXT4D.mjs.map +0 -1
- package/dist/search-M34FSP25.js +0 -108
- package/dist/search-M34FSP25.js.map +0 -1
- package/dist/set-5YJE4NOS.mjs +0 -105
- package/dist/set-5YJE4NOS.mjs.map +0 -1
- package/dist/set-6QKEZXES.js +0 -59
- package/dist/set-6QKEZXES.js.map +0 -1
- package/dist/set-ECD6VHQI.js +0 -105
- package/dist/set-ECD6VHQI.js.map +0 -1
- package/dist/set-X7XDEFU5.mjs +0 -59
- package/dist/set-X7XDEFU5.mjs.map +0 -1
- package/dist/status-6UGUEKSC.mjs +0 -120
- package/dist/status-6UGUEKSC.mjs.map +0 -1
- package/dist/status-DOPST7HX.js +0 -120
- package/dist/status-DOPST7HX.js.map +0 -1
- package/dist/status-GSPWZ255.mjs +0 -56
- package/dist/status-GSPWZ255.mjs.map +0 -1
- package/dist/status-M4GI2HR3.js +0 -56
- package/dist/status-M4GI2HR3.js.map +0 -1
- package/dist/status-PXWG34DC.mjs +0 -153
- package/dist/status-PXWG34DC.mjs.map +0 -1
- package/dist/status-TA4AIE6X.js +0 -153
- package/dist/status-TA4AIE6X.js.map +0 -1
- package/dist/sync-IVZ5VCKT.js +0 -132
- package/dist/sync-IVZ5VCKT.js.map +0 -1
- package/dist/sync-JRLKLXA6.mjs +0 -132
- package/dist/sync-JRLKLXA6.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-GLPKW2JV.js +0 -107
- package/dist/unset-GLPKW2JV.js.map +0 -1
- package/dist/unset-WSH675SN.mjs +0 -107
- package/dist/unset-WSH675SN.mjs.map +0 -1
- package/dist/update-3EI6SA7W.mjs +0 -65
- package/dist/update-3EI6SA7W.mjs.map +0 -1
- package/dist/update-3YLN3YXF.mjs +0 -83
- package/dist/update-3YLN3YXF.mjs.map +0 -1
- package/dist/update-4DSTSBSA.js +0 -51
- package/dist/update-4DSTSBSA.js.map +0 -1
- package/dist/update-4IRKH5VI.js +0 -48
- package/dist/update-4IRKH5VI.js.map +0 -1
- package/dist/update-62D6MLES.mjs +0 -79
- package/dist/update-62D6MLES.mjs.map +0 -1
- package/dist/update-7YUF7UJG.js +0 -61
- package/dist/update-7YUF7UJG.js.map +0 -1
- package/dist/update-AS7FCV5B.mjs +0 -61
- package/dist/update-AS7FCV5B.mjs.map +0 -1
- package/dist/update-BNJEOWPP.mjs +0 -71
- package/dist/update-BNJEOWPP.mjs.map +0 -1
- package/dist/update-CU4Z6XQR.mjs +0 -106
- package/dist/update-CU4Z6XQR.mjs.map +0 -1
- package/dist/update-DSRRR6J7.js +0 -76
- package/dist/update-DSRRR6J7.js.map +0 -1
- package/dist/update-E6BQSBVN.mjs +0 -63
- package/dist/update-E6BQSBVN.mjs.map +0 -1
- package/dist/update-ELVULBIN.mjs +0 -63
- package/dist/update-ELVULBIN.mjs.map +0 -1
- package/dist/update-EWBAZK64.mjs +0 -48
- package/dist/update-EWBAZK64.mjs.map +0 -1
- package/dist/update-EWS5LIXP.mjs +0 -51
- package/dist/update-EWS5LIXP.mjs.map +0 -1
- package/dist/update-G2LS465K.js +0 -65
- package/dist/update-G2LS465K.js.map +0 -1
- package/dist/update-GEKVSLEY.js +0 -79
- package/dist/update-GEKVSLEY.js.map +0 -1
- package/dist/update-GFAZJBC2.mjs +0 -75
- package/dist/update-GFAZJBC2.mjs.map +0 -1
- package/dist/update-JJDVXFLD.mjs +0 -48
- package/dist/update-JJDVXFLD.mjs.map +0 -1
- package/dist/update-JXSPKDKA.mjs +0 -66
- package/dist/update-JXSPKDKA.mjs.map +0 -1
- package/dist/update-KDJ64TZ2.js +0 -48
- package/dist/update-KDJ64TZ2.js.map +0 -1
- package/dist/update-MF56UHWY.js +0 -106
- package/dist/update-MF56UHWY.js.map +0 -1
- package/dist/update-MTHJCYKT.js +0 -63
- package/dist/update-MTHJCYKT.js.map +0 -1
- package/dist/update-NGJUN2VK.mjs +0 -76
- package/dist/update-NGJUN2VK.mjs.map +0 -1
- package/dist/update-SFGJMGKD.js +0 -75
- package/dist/update-SFGJMGKD.js.map +0 -1
- package/dist/update-SZNXZ7Y3.js +0 -83
- package/dist/update-SZNXZ7Y3.js.map +0 -1
- package/dist/update-UJYDVNOF.js +0 -63
- package/dist/update-UJYDVNOF.js.map +0 -1
- package/dist/update-XNHGNAQL.js +0 -66
- package/dist/update-XNHGNAQL.js.map +0 -1
- package/dist/update-YA6C47QH.js +0 -71
- package/dist/update-YA6C47QH.js.map +0 -1
- package/dist/upload-FXQRYNQC.js +0 -80
- package/dist/upload-FXQRYNQC.js.map +0 -1
- package/dist/upload-LERNY5WA.mjs +0 -80
- package/dist/upload-LERNY5WA.mjs.map +0 -1
- package/dist/versions-FI44YDAP.js +0 -85
- package/dist/versions-FI44YDAP.js.map +0 -1
- package/dist/versions-HP6HA2TT.mjs +0 -85
- package/dist/versions-HP6HA2TT.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-G3UCHRFN.mjs +0 -34
- package/dist/wrap-G3UCHRFN.mjs.map +0 -1
- package/dist/wrap-SJHGCERM.js +0 -34
- package/dist/wrap-SJHGCERM.js.map +0 -1
- /package/dist/{chunk-YQNOLNAK.mjs.map → chunk-2O4ILSP5.mjs.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/client-sdk/services/gateway-budgets/gateway-budgets-api.service.ts"],"sourcesContent":["import { formatApiErrorForOperation } from \"@/client-sdk/services/_shared/format-api-error\";\nimport { DEFAULT_ENDPOINT } from \"@/internal/constants\";\n\nexport type BudgetScopeKind =\n | \"ORGANIZATION\"\n | \"TEAM\"\n | \"PROJECT\"\n | \"VIRTUAL_KEY\"\n | \"PRINCIPAL\";\n\nexport type BudgetWindow = \"MINUTE\" | \"HOUR\" | \"DAY\" | \"WEEK\" | \"MONTH\" | \"TOTAL\";\nexport type BudgetOnBreach = \"BLOCK\" | \"WARN\";\n\nexport interface GatewayBudget {\n id: string;\n organization_id: string;\n scope_type: BudgetScopeKind;\n scope_id: string;\n name: string;\n description: string | null;\n window: BudgetWindow;\n on_breach: BudgetOnBreach;\n limit_usd: string;\n spent_usd: string;\n timezone: string | null;\n current_period_started_at: string;\n resets_at: string;\n last_reset_at: string | null;\n archived_at: string | null;\n created_at: string;\n}\n\nexport type CreateGatewayBudgetScope =\n | { kind: \"ORGANIZATION\"; organization_id: string }\n | { kind: \"TEAM\"; team_id: string }\n | { kind: \"PROJECT\"; project_id: string }\n | { kind: \"VIRTUAL_KEY\"; virtual_key_id: string }\n | { kind: \"PRINCIPAL\"; principal_user_id: string };\n\nexport interface CreateGatewayBudgetInput {\n scope: CreateGatewayBudgetScope;\n name: string;\n description?: string;\n window: BudgetWindow;\n limit_usd: number | string;\n on_breach?: BudgetOnBreach;\n timezone?: string | null;\n}\n\nexport interface UpdateGatewayBudgetInput {\n name?: string;\n description?: string | null;\n limit_usd?: number | string;\n on_breach?: BudgetOnBreach;\n timezone?: string | null;\n}\n\nexport class GatewayBudgetsApiError extends Error {\n constructor(\n message: string,\n public readonly operation: string,\n public readonly originalError?: unknown,\n ) {\n super(message);\n this.name = \"GatewayBudgetsApiError\";\n }\n}\n\nexport class GatewayBudgetsApiService {\n private readonly endpoint: string;\n private readonly apiKey: string;\n\n constructor(config?: { endpoint?: string; apiKey?: string }) {\n this.endpoint = (config?.endpoint ?? process.env.LANGWATCH_ENDPOINT ?? DEFAULT_ENDPOINT).replace(/\\/+$/, \"\");\n this.apiKey = config?.apiKey ?? process.env.LANGWATCH_API_KEY ?? \"\";\n }\n\n private headers(): Record<string, string> {\n return {\n Authorization: `Bearer ${this.apiKey}`,\n \"Content-Type\": \"application/json\",\n };\n }\n\n private async request<T>(operation: string, path: string, init?: RequestInit): Promise<T> {\n const response = await fetch(`${this.endpoint}${path}`, {\n ...init,\n headers: { ...this.headers(), ...(init?.headers ?? {}) },\n });\n if (!response.ok) {\n let parsedBody: unknown;\n try {\n parsedBody = await response.json();\n } catch {\n parsedBody = await response.text();\n }\n const message = formatApiErrorForOperation({\n operation,\n error: parsedBody,\n options: { status: response.status },\n });\n throw new GatewayBudgetsApiError(message, operation, parsedBody);\n }\n return (await response.json()) as T;\n }\n\n async list(): Promise<GatewayBudget[]> {\n const { data } = await this.request<{ data: GatewayBudget[] }>(\n \"list gateway budgets\",\n \"/api/gateway/v1/budgets\",\n );\n return data;\n }\n\n async create(input: CreateGatewayBudgetInput): Promise<GatewayBudget> {\n const { budget } = await this.request<{ budget: GatewayBudget }>(\n \"create gateway budget\",\n \"/api/gateway/v1/budgets\",\n { method: \"POST\", body: JSON.stringify(input) },\n );\n return budget;\n }\n\n async update(id: string, input: UpdateGatewayBudgetInput): Promise<GatewayBudget> {\n const { budget } = await this.request<{ budget: GatewayBudget }>(\n `update gateway budget \"${id}\"`,\n `/api/gateway/v1/budgets/${encodeURIComponent(id)}`,\n { method: \"PATCH\", body: JSON.stringify(input) },\n );\n return budget;\n }\n\n async archive(id: string): Promise<GatewayBudget> {\n const { budget } = await this.request<{ budget: GatewayBudget }>(\n `archive gateway budget \"${id}\"`,\n `/api/gateway/v1/budgets/${encodeURIComponent(id)}`,\n { method: \"DELETE\" },\n );\n return budget;\n }\n}\n"],"mappings":";;;;;;;;;;;;AAyDO,IAAM,yBAAN,cAAqC,MAAM;AAAA,EAChD,YACE,SACgB,WACA,eAChB;AACA,UAAM,OAAO;AAHG;AACA;AAGhB,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,2BAAN,MAA+B;AAAA,EAIpC,YAAY,QAAiD;AAxE/D;AAyEI,SAAK,aAAY,4CAAQ,aAAR,YAAoB,QAAQ,IAAI,uBAAhC,YAAsD,kBAAkB,QAAQ,QAAQ,EAAE;AAC3G,SAAK,UAAS,4CAAQ,WAAR,YAAkB,QAAQ,IAAI,sBAA9B,YAAmD;AAAA,EACnE;AAAA,EAEQ,UAAkC;AACxC,WAAO;AAAA,MACL,eAAe,UAAU,KAAK,MAAM;AAAA,MACpC,gBAAgB;AAAA,IAClB;AAAA,EACF;AAAA,EAEA,MAAc,QAAW,WAAmB,MAAc,MAAgC;AApF5F;AAqFI,UAAM,WAAW,MAAM,MAAM,GAAG,KAAK,QAAQ,GAAG,IAAI,IAAI,iCACnD,OADmD;AAAA,MAEtD,SAAS,kCAAK,KAAK,QAAQ,KAAO,kCAAM,YAAN,YAAiB,CAAC;AAAA,IACtD,EAAC;AACD,QAAI,CAAC,SAAS,IAAI;AAChB,UAAI;AACJ,UAAI;AACF,qBAAa,MAAM,SAAS,KAAK;AAAA,MACnC,SAAQ;AACN,qBAAa,MAAM,SAAS,KAAK;AAAA,MACnC;AACA,YAAM,UAAU,2BAA2B;AAAA,QACzC;AAAA,QACA,OAAO;AAAA,QACP,SAAS,EAAE,QAAQ,SAAS,OAAO;AAAA,MACrC,CAAC;AACD,YAAM,IAAI,uBAAuB,SAAS,WAAW,UAAU;AAAA,IACjE;AACA,WAAQ,MAAM,SAAS,KAAK;AAAA,EAC9B;AAAA,EAEA,MAAM,OAAiC;AACrC,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK;AAAA,MAC1B;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,OAAyD;AACpE,UAAM,EAAE,OAAO,IAAI,MAAM,KAAK;AAAA,MAC5B;AAAA,MACA;AAAA,MACA,EAAE,QAAQ,QAAQ,MAAM,KAAK,UAAU,KAAK,EAAE;AAAA,IAChD;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,IAAY,OAAyD;AAChF,UAAM,EAAE,OAAO,IAAI,MAAM,KAAK;AAAA,MAC5B,0BAA0B,EAAE;AAAA,MAC5B,2BAA2B,mBAAmB,EAAE,CAAC;AAAA,MACjD,EAAE,QAAQ,SAAS,MAAM,KAAK,UAAU,KAAK,EAAE;AAAA,IACjD;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,QAAQ,IAAoC;AAChD,UAAM,EAAE,OAAO,IAAI,MAAM,KAAK;AAAA,MAC5B,2BAA2B,EAAE;AAAA,MAC7B,2BAA2B,mBAAmB,EAAE,CAAC;AAAA,MACjD,EAAE,QAAQ,SAAS;AAAA,IACrB;AACA,WAAO;AAAA,EACT;AACF;","names":[]}
|
package/dist/chunk-3BDHATON.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/client-sdk/services/experiments/run-status.ts
|
|
2
|
-
var INTERRUPTED_THRESHOLD_MS = 5 * 60 * 1e3;
|
|
3
|
-
var deriveRunStatus = (timestamps, now = Date.now()) => {
|
|
4
|
-
if (timestamps.stoppedAt != null) return "stopped";
|
|
5
|
-
if (timestamps.finishedAt != null) return "completed";
|
|
6
|
-
if (timestamps.updatedAt != null && now - timestamps.updatedAt > INTERRUPTED_THRESHOLD_MS) {
|
|
7
|
-
return "interrupted";
|
|
8
|
-
}
|
|
9
|
-
return "running";
|
|
10
|
-
};
|
|
11
|
-
var isTerminalStatus = (status) => status === "completed" || status === "stopped";
|
|
12
|
-
|
|
13
|
-
// src/cli/commands/experiment/resolve-run.ts
|
|
14
|
-
var resolveRunId = async ({
|
|
15
|
-
service,
|
|
16
|
-
experimentSlug,
|
|
17
|
-
runId
|
|
18
|
-
}) => {
|
|
19
|
-
const explicit = runId == null ? void 0 : runId.trim();
|
|
20
|
-
if (explicit) return explicit;
|
|
21
|
-
const { runs } = await service.listRuns({ experimentSlug, pageSize: 1 });
|
|
22
|
-
const latest = runs == null ? void 0 : runs[0];
|
|
23
|
-
if (!latest) {
|
|
24
|
-
throw new Error(
|
|
25
|
-
`No runs found for experiment "${experimentSlug}". Start one first, or pass --run-id <id>.`
|
|
26
|
-
);
|
|
27
|
-
}
|
|
28
|
-
return latest.runId;
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
exports.deriveRunStatus = deriveRunStatus; exports.isTerminalStatus = isTerminalStatus; exports.resolveRunId = resolveRunId;
|
|
36
|
-
//# sourceMappingURL=chunk-3BDHATON.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-3BDHATON.js","../src/client-sdk/services/experiments/run-status.ts","../src/cli/commands/experiment/resolve-run.ts"],"names":[],"mappings":"AAAA;ACMO,IAAM,yBAAA,EAA2B,EAAA,EAAI,GAAA,EAAK,GAAA;AAW1C,IAAM,gBAAA,EAAkB,CAC7B,UAAA,EACA,IAAA,EAAc,IAAA,CAAK,GAAA,CAAI,CAAA,EAAA,GACT;AACd,EAAA,GAAA,CAAI,UAAA,CAAW,UAAA,GAAa,IAAA,EAAM,OAAO,SAAA;AACzC,EAAA,GAAA,CAAI,UAAA,CAAW,WAAA,GAAc,IAAA,EAAM,OAAO,WAAA;AAC1C,EAAA,GAAA,CACE,UAAA,CAAW,UAAA,GAAa,KAAA,GACxB,IAAA,EAAM,UAAA,CAAW,UAAA,EAAY,wBAAA,EAC7B;AACA,IAAA,OAAO,aAAA;AAAA,EACT;AACA,EAAA,OAAO,SAAA;AACT,CAAA;AAEO,IAAM,iBAAA,EAAmB,CAAC,MAAA,EAAA,GAC/B,OAAA,IAAW,YAAA,GAAe,OAAA,IAAW,SAAA;ADtBvC;AACA;AEPO,IAAM,aAAA,EAAe,MAAA,CAAO;AAAA,EACjC,OAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF,CAAA,EAAA,GAIuB;AACrB,EAAA,MAAM,SAAA,EAAW,MAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,KAAA,CAAO,IAAA,CAAA,CAAA;AACxB,EAAA,GAAA,CAAI,QAAA,EAAU,OAAO,QAAA;AAErB,EAAA,MAAM,EAAE,KAAK,EAAA,EAAI,MAAM,OAAA,CAAQ,QAAA,CAAS,EAAE,cAAA,EAAgB,QAAA,EAAU,EAAE,CAAC,CAAA;AACvE,EAAA,MAAM,OAAA,EAAS,KAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,IAAA,CAAO,CAAA,CAAA;AACtB,EAAA,GAAA,CAAI,CAAC,MAAA,EAAQ;AACX,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,CAAA,8BAAA,EAAiC,cAAc,CAAA,0CAAA;AAAA,IACjD,CAAA;AAAA,EACF;AACA,EAAA,OAAO,MAAA,CAAO,KAAA;AAChB,CAAA;AFIA;AACA;AACE;AACA;AACA;AACF,4HAAC","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-3BDHATON.js","sourcesContent":[null,"// Experiment runs are stored as a timestamp-driven state in ClickHouse: a run\n// is \"completed\" once finishedAt is set, \"stopped\" once stoppedAt is set, and\n// otherwise still \"running\". A run that stopped emitting updates a while ago\n// without ever finishing is reported as \"interrupted\": the SDK process likely\n// died before sending finished_at/stopped_at.\n\nexport const INTERRUPTED_THRESHOLD_MS = 5 * 60 * 1000;\n\nexport type RunStatus = \"completed\" | \"stopped\" | \"running\" | \"interrupted\";\n\nexport interface RunTimestamps {\n createdAt?: number | null;\n updatedAt?: number | null;\n finishedAt?: number | null;\n stoppedAt?: number | null;\n}\n\nexport const deriveRunStatus = (\n timestamps: RunTimestamps,\n now: number = Date.now(),\n): RunStatus => {\n if (timestamps.stoppedAt != null) return \"stopped\";\n if (timestamps.finishedAt != null) return \"completed\";\n if (\n timestamps.updatedAt != null &&\n now - timestamps.updatedAt > INTERRUPTED_THRESHOLD_MS\n ) {\n return \"interrupted\";\n }\n return \"running\";\n};\n\nexport const isTerminalStatus = (status: RunStatus): boolean =>\n status === \"completed\" || status === \"stopped\";\n","import { ExperimentsApiService } from \"@/client-sdk/services/experiments/experiments-api.service\";\n\n// Resolve which run an experiment subcommand should act on: an explicit\n// --run-id when given, otherwise the latest run for the experiment. The runs\n// list is returned newest-first by the API, so the first entry is the latest.\nexport const resolveRunId = async ({\n service,\n experimentSlug,\n runId,\n}: {\n service: ExperimentsApiService;\n experimentSlug: string;\n runId?: string;\n}): Promise<string> => {\n const explicit = runId?.trim();\n if (explicit) return explicit;\n\n const { runs } = await service.listRuns({ experimentSlug, pageSize: 1 });\n const latest = runs?.[0];\n if (!latest) {\n throw new Error(\n `No runs found for experiment \"${experimentSlug}\". Start one first, or pass --run-id <id>.`,\n );\n }\n return latest.runId;\n};\n"]}
|
package/dist/chunk-3CPA262Z.mjs
DELETED
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
__spreadValues
|
|
3
|
-
} from "./chunk-BAX4W3AY.mjs";
|
|
4
|
-
|
|
5
|
-
// src/cli/utils/governance/device-flow.ts
|
|
6
|
-
import * as os from "os";
|
|
7
|
-
import { setTimeout as wait } from "timers/promises";
|
|
8
|
-
var DeviceFlowError = class extends Error {
|
|
9
|
-
constructor(kind, message) {
|
|
10
|
-
super(message);
|
|
11
|
-
this.kind = kind;
|
|
12
|
-
this.name = "DeviceFlowError";
|
|
13
|
-
}
|
|
14
|
-
};
|
|
15
|
-
async function startDeviceCode(opts, init = {}) {
|
|
16
|
-
const body = {};
|
|
17
|
-
if (init.credentialType) body.credential_type = init.credentialType;
|
|
18
|
-
const dc = await postJSON(opts, "/api/auth/cli/device-code", body);
|
|
19
|
-
if (!dc.interval || dc.interval <= 0) dc.interval = 5;
|
|
20
|
-
return dc;
|
|
21
|
-
}
|
|
22
|
-
function collectClientInfo() {
|
|
23
|
-
let hostname2 = "";
|
|
24
|
-
let uname = "";
|
|
25
|
-
try {
|
|
26
|
-
hostname2 = os.hostname();
|
|
27
|
-
} catch (e) {
|
|
28
|
-
}
|
|
29
|
-
try {
|
|
30
|
-
uname = os.userInfo().username;
|
|
31
|
-
} catch (e) {
|
|
32
|
-
}
|
|
33
|
-
return { hostname: hostname2, uname, platform: process.platform };
|
|
34
|
-
}
|
|
35
|
-
async function exchange(opts, deviceCode) {
|
|
36
|
-
const res = await rawPost(opts, "/api/auth/cli/exchange", {
|
|
37
|
-
device_code: deviceCode,
|
|
38
|
-
client_info: collectClientInfo()
|
|
39
|
-
});
|
|
40
|
-
switch (res.status) {
|
|
41
|
-
case 200: {
|
|
42
|
-
const body = await res.json();
|
|
43
|
-
if (!("kind" in body) || !body.kind) {
|
|
44
|
-
return __spreadValues({ kind: "device_session" }, body);
|
|
45
|
-
}
|
|
46
|
-
return body;
|
|
47
|
-
}
|
|
48
|
-
case 428:
|
|
49
|
-
throw new DeviceFlowError("pending", "authorization pending");
|
|
50
|
-
case 410:
|
|
51
|
-
throw new DeviceFlowError("denied", "authorization denied");
|
|
52
|
-
case 408:
|
|
53
|
-
throw new DeviceFlowError("expired", "authorization request expired");
|
|
54
|
-
case 429:
|
|
55
|
-
throw new DeviceFlowError("slow_down", "polling too fast");
|
|
56
|
-
default: {
|
|
57
|
-
const body = await res.text().catch(() => "");
|
|
58
|
-
throw new DeviceFlowError("other", `unexpected status ${res.status}: ${body.slice(0, 256)}`);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
async function pollUntilDone(opts, dc) {
|
|
63
|
-
let interval = dc.interval * 1e3;
|
|
64
|
-
const ceiling = 6e4;
|
|
65
|
-
const deadline = Date.now() + dc.expires_in * 1e3;
|
|
66
|
-
for (; ; ) {
|
|
67
|
-
if (Date.now() > deadline) {
|
|
68
|
-
throw new DeviceFlowError("expired", "authorization request expired");
|
|
69
|
-
}
|
|
70
|
-
await wait(interval);
|
|
71
|
-
try {
|
|
72
|
-
return await exchange(opts, dc.device_code);
|
|
73
|
-
} catch (err) {
|
|
74
|
-
if (!(err instanceof DeviceFlowError)) throw err;
|
|
75
|
-
if (err.kind === "pending") continue;
|
|
76
|
-
if (err.kind === "slow_down") {
|
|
77
|
-
interval = Math.min(interval * 2, ceiling);
|
|
78
|
-
continue;
|
|
79
|
-
}
|
|
80
|
-
throw err;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
async function logout(opts, refreshToken, accessToken) {
|
|
85
|
-
const body = { refresh_token: refreshToken };
|
|
86
|
-
if (accessToken) body.access_token = accessToken;
|
|
87
|
-
const res = await rawPost(opts, "/api/auth/cli/logout", body);
|
|
88
|
-
if (res.status === 200 || res.status === 401 || res.status === 404) return;
|
|
89
|
-
const text = await res.text().catch(() => "");
|
|
90
|
-
throw new DeviceFlowError("other", `logout failed (${res.status}): ${text.slice(0, 256)}`);
|
|
91
|
-
}
|
|
92
|
-
async function postJSON(opts, path, body) {
|
|
93
|
-
const res = await rawPost(opts, path, body);
|
|
94
|
-
if (!res.ok) {
|
|
95
|
-
const text = await res.text().catch(() => "");
|
|
96
|
-
throw new DeviceFlowError("other", `${path} \u2192 ${res.status}: ${text.slice(0, 256)}`);
|
|
97
|
-
}
|
|
98
|
-
return await res.json();
|
|
99
|
-
}
|
|
100
|
-
function rawPost(opts, path, body) {
|
|
101
|
-
var _a;
|
|
102
|
-
const url = opts.baseUrl.replace(/\/+$/, "") + path;
|
|
103
|
-
const f = (_a = opts.fetchImpl) != null ? _a : fetch;
|
|
104
|
-
return f(url, {
|
|
105
|
-
method: "POST",
|
|
106
|
-
headers: {
|
|
107
|
-
"Content-Type": "application/json",
|
|
108
|
-
Accept: "application/json",
|
|
109
|
-
// Origin enforcement on the server requires this for non-browser
|
|
110
|
-
// clients. The base URL is the same as the control plane, so
|
|
111
|
-
// mirroring it as Origin satisfies the same-origin gate.
|
|
112
|
-
Origin: opts.baseUrl.replace(/\/+$/, "")
|
|
113
|
-
},
|
|
114
|
-
body: JSON.stringify(body != null ? body : {})
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
export {
|
|
119
|
-
DeviceFlowError,
|
|
120
|
-
startDeviceCode,
|
|
121
|
-
pollUntilDone,
|
|
122
|
-
logout
|
|
123
|
-
};
|
|
124
|
-
//# sourceMappingURL=chunk-3CPA262Z.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/utils/governance/device-flow.ts"],"sourcesContent":["/**\n * RFC 8628 device-code OAuth client for the `langwatch login --device`\n * flow. Targets the control plane's `/api/auth/cli/*` endpoints —\n * the same wire surface a custom CLI client would hit (documented in\n * `docs/ai-gateway/governance/admin-setup.mdx#cli-device-flow-rest-api`).\n *\n * Pure stdlib `fetch`, no axios — matches the rest of the typescript\n * CLI's HTTP style.\n */\n\nimport * as os from \"node:os\";\nimport { setTimeout as wait } from \"node:timers/promises\";\n\nexport interface DeviceCode {\n device_code: string;\n user_code: string;\n verification_uri: string;\n verification_uri_complete?: string;\n expires_in: number;\n interval: number;\n}\n\nexport interface ExchangeUser {\n id: string;\n email: string;\n name: string;\n}\n\nexport interface ExchangeOrganization {\n id: string;\n slug?: string;\n name: string;\n}\n\nexport interface ExchangePersonalVK {\n id: string;\n secret: string;\n prefix?: string;\n}\n\nexport interface ExchangeProject {\n id: string;\n slug: string;\n name: string;\n}\n\n/**\n * The CLI device-code flow can mint two distinct credential types:\n * - \"device_session\" — the user-scoped OAuth-style access+refresh\n * token pair used by `langwatch claude/codex/...` wrappers.\n * - \"project_api_key\" — the project-scoped SDK key\n * (`Project.apiKey`) returned verbatim, used by SDK consumers\n * and `langwatch sync/eval/prompt/...` commands.\n *\n * Caller selects via `startDeviceCode({ credentialType })`. Server\n * stamps the choice on the device-code record + flips the response\n * shape on /exchange. Same browser approval ceremony for both — only\n * the persist target differs (`~/.langwatch/config.json` vs `.env`).\n */\nexport type CredentialType = \"device_session\" | \"project_api_key\";\n\nexport interface ExchangeDeviceSessionResult {\n kind: \"device_session\";\n access_token: string;\n refresh_token: string;\n expires_in: number;\n user: ExchangeUser;\n organization: ExchangeOrganization;\n default_personal_vk?: ExchangePersonalVK;\n endpoint?: string;\n}\n\nexport interface ExchangeApiKeyResult {\n kind: \"api_key\";\n api_key: string;\n project: ExchangeProject;\n user: ExchangeUser;\n organization: ExchangeOrganization;\n endpoint?: string;\n}\n\nexport type ExchangeResult =\n | ExchangeDeviceSessionResult\n | ExchangeApiKeyResult;\n\n/**\n * Back-compat alias for the device-session shape. Pre-`f9fcc3927` server\n * builds returned the unkinded shape verbatim; the runtime normaliser\n * below maps that to `{ kind: 'device_session', ... }` so callers can\n * always assume the discriminated form.\n */\nexport type LegacyExchangeResult = Omit<\n ExchangeDeviceSessionResult,\n \"kind\"\n> & { kind?: \"device_session\" };\n\nexport interface RefreshResult {\n access_token: string;\n refresh_token: string;\n expires_in: number;\n}\n\nexport class DeviceFlowError extends Error {\n constructor(public readonly kind: \"pending\" | \"denied\" | \"expired\" | \"slow_down\" | \"unauthorized\" | \"other\", message: string) {\n super(message);\n this.name = \"DeviceFlowError\";\n }\n}\n\nexport interface DeviceFlowOptions {\n /** Control-plane base URL (e.g. https://app.langwatch.ai). */\n baseUrl: string;\n /** Optional fetch override for tests. */\n fetchImpl?: typeof fetch;\n}\n\n/**\n * `POST /api/auth/cli/device-code` — mint a device-code + user-code pair.\n *\n * Optional `credentialType` selects what `/exchange` will return on\n * approval: a user-scoped device session (default) or a project-scoped\n * API key. Older servers ignore the field and stay on the device-session\n * shape — back-compat is the server's responsibility.\n */\nexport async function startDeviceCode(\n opts: DeviceFlowOptions,\n init: { credentialType?: CredentialType } = {},\n): Promise<DeviceCode> {\n const body: Record<string, unknown> = {};\n if (init.credentialType) body.credential_type = init.credentialType;\n const dc = await postJSON<DeviceCode>(opts, \"/api/auth/cli/device-code\", body);\n if (!dc.interval || dc.interval <= 0) dc.interval = 5;\n return dc;\n}\n\n/**\n * Device fingerprint stamped onto the CLI session at /exchange time.\n * The control plane persists it on the access + refresh token records\n * so /me/sessions can render \"Mac (rchaves.local)\" instead of\n * \"Unknown device\" — multi-device users need this to revoke\n * individual sessions without nuking every device they're logged in\n * on (Ariana QA finding). See\n * `langwatch/src/server/routes/auth-cli.ts#clientInfoSchema` for the\n * server contract.\n */\nfunction collectClientInfo(): {\n hostname: string;\n uname: string;\n platform: string;\n} {\n let hostname = \"\";\n let uname = \"\";\n try {\n hostname = os.hostname();\n } catch {\n // os.hostname() can throw on locked-down sandboxes; carry empty.\n }\n try {\n uname = os.userInfo().username;\n } catch {\n // os.userInfo() throws when the uid has no /etc/passwd entry\n // (some Docker images, CI sandboxes); carry empty.\n }\n return { hostname, uname, platform: process.platform };\n}\n\n/**\n * `POST /api/auth/cli/exchange` — single poll. Returns the access+refresh\n * token bundle on success (200), or throws DeviceFlowError with a\n * categorised `kind` so the caller can decide whether to keep polling\n * (`pending`, `slow_down`) or stop (`denied`, `expired`).\n */\nexport async function exchange(\n opts: DeviceFlowOptions,\n deviceCode: string,\n): Promise<ExchangeResult> {\n const res = await rawPost(opts, \"/api/auth/cli/exchange\", {\n device_code: deviceCode,\n client_info: collectClientInfo(),\n });\n switch (res.status) {\n case 200: {\n const body = (await res.json()) as\n | ExchangeResult\n | LegacyExchangeResult;\n // Pre-f9fcc3927 servers returned the device-session shape without\n // a `kind` field. Normalise so callers can always discriminate.\n if (!(\"kind\" in body) || !body.kind) {\n return { kind: \"device_session\", ...(body) };\n }\n return body as ExchangeResult;\n }\n case 428:\n throw new DeviceFlowError(\"pending\", \"authorization pending\");\n case 410:\n throw new DeviceFlowError(\"denied\", \"authorization denied\");\n case 408:\n throw new DeviceFlowError(\"expired\", \"authorization request expired\");\n case 429:\n throw new DeviceFlowError(\"slow_down\", \"polling too fast\");\n default: {\n const body = await res.text().catch(() => \"\");\n throw new DeviceFlowError(\"other\", `unexpected status ${res.status}: ${body.slice(0, 256)}`);\n }\n }\n}\n\n/**\n * Poll `exchange` at the cadence the server requested until the user\n * approves, denies, or the device-code expires. Honours RFC 8628 §3.5\n * by doubling the polling interval on `slow_down` responses.\n */\nexport async function pollUntilDone(\n opts: DeviceFlowOptions,\n dc: DeviceCode,\n): Promise<ExchangeResult> {\n let interval = dc.interval * 1000;\n const ceiling = 60_000;\n const deadline = Date.now() + dc.expires_in * 1000;\n\n for (;;) {\n if (Date.now() > deadline) {\n throw new DeviceFlowError(\"expired\", \"authorization request expired\");\n }\n await wait(interval);\n try {\n return await exchange(opts, dc.device_code);\n } catch (err) {\n if (!(err instanceof DeviceFlowError)) throw err;\n if (err.kind === \"pending\") continue;\n if (err.kind === \"slow_down\") {\n interval = Math.min(interval * 2, ceiling);\n continue;\n }\n throw err;\n }\n }\n}\n\n/**\n * `POST /api/auth/cli/refresh` — rotate access and refresh tokens.\n * 401 means the refresh token has been revoked server-side (admin\n * disable / off-boarding); the caller should clear local state.\n */\nexport async function refresh(\n opts: DeviceFlowOptions,\n refreshToken: string,\n): Promise<RefreshResult> {\n const res = await rawPost(opts, \"/api/auth/cli/refresh\", { refresh_token: refreshToken });\n if (res.status === 401) {\n throw new DeviceFlowError(\"unauthorized\", \"session revoked — re-authenticate\");\n }\n if (!res.ok) {\n const body = await res.text().catch(() => \"\");\n throw new DeviceFlowError(\"other\", `refresh failed (${res.status}): ${body.slice(0, 256)}`);\n }\n return (await res.json()) as RefreshResult;\n}\n\n/**\n * `POST /api/auth/cli/logout` — server-side revoke a refresh token\n * AND its paired access token (per `e7a042c69`: a stolen access\n * token used to survive logout for up to 1h until expiry; sending\n * both closes the gap). Idempotent — 200 on already-revoked or\n * unknown tokens.\n */\nexport async function logout(\n opts: DeviceFlowOptions,\n refreshToken: string,\n accessToken?: string,\n): Promise<void> {\n const body: Record<string, string> = { refresh_token: refreshToken };\n if (accessToken) body.access_token = accessToken;\n const res = await rawPost(opts, \"/api/auth/cli/logout\", body);\n // 401/404 mean \"already gone\" — that's success for logout.\n if (res.status === 200 || res.status === 401 || res.status === 404) return;\n const text = await res.text().catch(() => \"\");\n throw new DeviceFlowError(\"other\", `logout failed (${res.status}): ${text.slice(0, 256)}`);\n}\n\nasync function postJSON<T>(opts: DeviceFlowOptions, path: string, body: unknown): Promise<T> {\n const res = await rawPost(opts, path, body);\n if (!res.ok) {\n const text = await res.text().catch(() => \"\");\n throw new DeviceFlowError(\"other\", `${path} → ${res.status}: ${text.slice(0, 256)}`);\n }\n return (await res.json()) as T;\n}\n\nfunction rawPost(opts: DeviceFlowOptions, path: string, body: unknown): Promise<Response> {\n const url = opts.baseUrl.replace(/\\/+$/, \"\") + path;\n const f = opts.fetchImpl ?? fetch;\n return f(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n // Origin enforcement on the server requires this for non-browser\n // clients. The base URL is the same as the control plane, so\n // mirroring it as Origin satisfies the same-origin gate.\n Origin: opts.baseUrl.replace(/\\/+$/, \"\"),\n },\n body: JSON.stringify(body ?? {}),\n });\n}\n"],"mappings":"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","names":["hostname"]}
|
package/dist/chunk-43OERQAS.js
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
var _chunkNC42BNF4js = require('./chunk-NC42BNF4.js');
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var _chunkC5Y772G7js = require('./chunk-C5Y772G7.js');
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var _chunkBRPEG3YQjs = require('./chunk-BRPEG3YQ.js');
|
|
11
|
-
|
|
12
|
-
// src/client-sdk/services/projects/projects-api.service.ts
|
|
13
|
-
var ProjectsApiError = class extends Error {
|
|
14
|
-
constructor(message, operation, originalError) {
|
|
15
|
-
super(message);
|
|
16
|
-
this.operation = operation;
|
|
17
|
-
this.originalError = originalError;
|
|
18
|
-
this.name = "ProjectsApiError";
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
var ProjectsApiService = class {
|
|
22
|
-
constructor(config) {
|
|
23
|
-
var _a, _b, _c, _d;
|
|
24
|
-
this.endpoint = ((_b = (_a = config == null ? void 0 : config.endpoint) != null ? _a : process.env.LANGWATCH_ENDPOINT) != null ? _b : _chunkNC42BNF4js.DEFAULT_ENDPOINT).replace(/\/+$/, "");
|
|
25
|
-
this.apiKey = (_d = (_c = config == null ? void 0 : config.apiKey) != null ? _c : process.env.LANGWATCH_API_KEY) != null ? _d : "";
|
|
26
|
-
}
|
|
27
|
-
headers() {
|
|
28
|
-
return {
|
|
29
|
-
Authorization: `Bearer ${this.apiKey}`,
|
|
30
|
-
"Content-Type": "application/json"
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
async request(operation, path, init) {
|
|
34
|
-
var _a;
|
|
35
|
-
const response = await fetch(`${this.endpoint}${path}`, _chunkBRPEG3YQjs.__spreadProps.call(void 0, _chunkBRPEG3YQjs.__spreadValues.call(void 0, {}, init), {
|
|
36
|
-
headers: _chunkBRPEG3YQjs.__spreadValues.call(void 0, _chunkBRPEG3YQjs.__spreadValues.call(void 0, {}, this.headers()), (_a = init == null ? void 0 : init.headers) != null ? _a : {})
|
|
37
|
-
}));
|
|
38
|
-
if (!response.ok) {
|
|
39
|
-
let parsedBody;
|
|
40
|
-
try {
|
|
41
|
-
parsedBody = await response.json();
|
|
42
|
-
} catch (e) {
|
|
43
|
-
parsedBody = await response.text();
|
|
44
|
-
}
|
|
45
|
-
const message = _chunkC5Y772G7js.formatApiErrorForOperation.call(void 0, {
|
|
46
|
-
operation,
|
|
47
|
-
error: parsedBody,
|
|
48
|
-
options: { status: response.status }
|
|
49
|
-
});
|
|
50
|
-
throw new ProjectsApiError(message, operation, parsedBody);
|
|
51
|
-
}
|
|
52
|
-
return await response.json();
|
|
53
|
-
}
|
|
54
|
-
async list(options) {
|
|
55
|
-
const params = new URLSearchParams();
|
|
56
|
-
if (options == null ? void 0 : options.page) params.set("page", String(options.page));
|
|
57
|
-
if (options == null ? void 0 : options.limit) params.set("limit", String(options.limit));
|
|
58
|
-
const qs = params.toString();
|
|
59
|
-
return this.request(
|
|
60
|
-
"list projects",
|
|
61
|
-
`/api/projects${qs ? `?${qs}` : ""}`
|
|
62
|
-
);
|
|
63
|
-
}
|
|
64
|
-
async get(id) {
|
|
65
|
-
return this.request(
|
|
66
|
-
`get project "${id}"`,
|
|
67
|
-
`/api/projects/${encodeURIComponent(id)}`
|
|
68
|
-
);
|
|
69
|
-
}
|
|
70
|
-
async create(input) {
|
|
71
|
-
return this.request(
|
|
72
|
-
"create project",
|
|
73
|
-
"/api/projects",
|
|
74
|
-
{ method: "POST", body: JSON.stringify(input) }
|
|
75
|
-
);
|
|
76
|
-
}
|
|
77
|
-
async update(id, input) {
|
|
78
|
-
return this.request(
|
|
79
|
-
`update project "${id}"`,
|
|
80
|
-
`/api/projects/${encodeURIComponent(id)}`,
|
|
81
|
-
{ method: "PATCH", body: JSON.stringify(input) }
|
|
82
|
-
);
|
|
83
|
-
}
|
|
84
|
-
async archive(id) {
|
|
85
|
-
return this.request(
|
|
86
|
-
`archive project "${id}"`,
|
|
87
|
-
`/api/projects/${encodeURIComponent(id)}`,
|
|
88
|
-
{ method: "DELETE" }
|
|
89
|
-
);
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
exports.ProjectsApiService = ProjectsApiService;
|
|
96
|
-
//# sourceMappingURL=chunk-43OERQAS.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-43OERQAS.js","../src/client-sdk/services/projects/projects-api.service.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B;AACA;ACwCO,IAAM,iBAAA,EAAN,MAAA,QAA+B,MAAM;AAAA,EAC1C,WAAA,CACE,OAAA,EACgB,SAAA,EACA,aAAA,EAChB;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAHG,IAAA,IAAA,CAAA,UAAA,EAAA,SAAA;AACA,IAAA,IAAA,CAAA,cAAA,EAAA,aAAA;AAGhB,IAAA,IAAA,CAAK,KAAA,EAAO,kBAAA;AAAA,EACd;AACF,CAAA;AAEO,IAAM,mBAAA,EAAN,MAAyB;AAAA,EAI9B,WAAA,CAAY,MAAA,EAAiD;AAlE/D,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAmEI,IAAA,IAAA,CAAK,SAAA,EAAA,CAAA,CAAY,GAAA,EAAA,CAAA,GAAA,EAAA,OAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,MAAA,CAAQ,QAAA,EAAA,GAAR,KAAA,EAAA,GAAA,EAAoB,OAAA,CAAQ,GAAA,CAAI,kBAAA,EAAA,GAAhC,KAAA,EAAA,GAAA,EAAsD,iCAAA,CAAA,CAAkB,OAAA,CAAQ,MAAA,EAAQ,EAAE,CAAA;AAC3G,IAAA,IAAA,CAAK,OAAA,EAAA,CAAS,GAAA,EAAA,CAAA,GAAA,EAAA,OAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,MAAA,CAAQ,MAAA,EAAA,GAAR,KAAA,EAAA,GAAA,EAAkB,OAAA,CAAQ,GAAA,CAAI,iBAAA,EAAA,GAA9B,KAAA,EAAA,GAAA,EAAmD,EAAA;AAAA,EACnE;AAAA,EAEQ,OAAA,CAAA,EAAkC;AACxC,IAAA,OAAO;AAAA,MACL,aAAA,EAAe,CAAA,OAAA,EAAU,IAAA,CAAK,MAAM,CAAA,CAAA;AACpB,MAAA;AAClB,IAAA;AACF,EAAA;AAE0F,EAAA;AA9E5F,IAAA;AA+EyC,IAAA;AAE1B,MAAA;AACV,IAAA;AACiB,IAAA;AACZ,MAAA;AACA,MAAA;AAC+B,QAAA;AAC3B,MAAA;AAC2B,QAAA;AACnC,MAAA;AACgB,MAAA;AACd,QAAA;AACO,QAAA;AAC4B,QAAA;AACpC,MAAA;AACmC,MAAA;AACtC,IAAA;AAC4B,IAAA;AAC9B,EAAA;AAEoF,EAAA;AAC/C,IAAA;AACtB,IAAA;AACA,IAAA;AACc,IAAA;AACf,IAAA;AACV,MAAA;AACkC,MAAA;AACpC,IAAA;AACF,EAAA;AAEwC,EAAA;AAC1B,IAAA;AACQ,MAAA;AACkB,MAAA;AACtC,IAAA;AACF,EAAA;AAEwE,EAAA;AAC1D,IAAA;AACV,MAAA;AACA,MAAA;AAC6B,MAAA;AAC/B,IAAA;AACF,EAAA;AAEsE,EAAA;AACxD,IAAA;AACW,MAAA;AACe,MAAA;AACN,MAAA;AAChC,IAAA;AACF,EAAA;AAEoD,EAAA;AACtC,IAAA;AACY,MAAA;AACc,MAAA;AACjB,MAAA;AACrB,IAAA;AACF,EAAA;AACF;ADlD2C;AACA;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-43OERQAS.js","sourcesContent":[null,"import { formatApiErrorForOperation } from \"@/client-sdk/services/_shared/format-api-error\";\nimport { DEFAULT_ENDPOINT } from \"@/internal/constants\";\n\nexport interface Project {\n id: string;\n name: string;\n slug: string;\n language: string;\n framework: string;\n teamId: string;\n piiRedactionLevel: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface CreateProjectInput {\n name: string;\n language: string;\n framework: string;\n teamId?: string;\n newTeamName?: string;\n}\n\nexport interface UpdateProjectInput {\n name?: string;\n language?: string;\n framework?: string;\n piiRedactionLevel?: \"STRICT\" | \"ESSENTIAL\" | \"DISABLED\";\n}\n\nexport interface ProjectWithServiceKey extends Project {\n serviceApiKey: string;\n serviceApiKeyId: string;\n}\n\nexport interface PaginatedProjects {\n data: Project[];\n pagination: {\n page: number;\n limit: number;\n total: number;\n totalPages: number;\n };\n}\n\nexport interface ArchivedProject {\n id: string;\n name: string;\n archivedAt: string;\n}\n\nexport class ProjectsApiError extends Error {\n constructor(\n message: string,\n public readonly operation: string,\n public readonly originalError?: unknown,\n ) {\n super(message);\n this.name = \"ProjectsApiError\";\n }\n}\n\nexport class ProjectsApiService {\n private readonly endpoint: string;\n private readonly apiKey: string;\n\n constructor(config?: { endpoint?: string; apiKey?: string }) {\n this.endpoint = (config?.endpoint ?? process.env.LANGWATCH_ENDPOINT ?? DEFAULT_ENDPOINT).replace(/\\/+$/, \"\");\n this.apiKey = config?.apiKey ?? process.env.LANGWATCH_API_KEY ?? \"\";\n }\n\n private headers(): Record<string, string> {\n return {\n Authorization: `Bearer ${this.apiKey}`,\n \"Content-Type\": \"application/json\",\n };\n }\n\n private async request<T>(operation: string, path: string, init?: RequestInit): Promise<T> {\n const response = await fetch(`${this.endpoint}${path}`, {\n ...init,\n headers: { ...this.headers(), ...(init?.headers ?? {}) },\n });\n if (!response.ok) {\n let parsedBody: unknown;\n try {\n parsedBody = await response.json();\n } catch {\n parsedBody = await response.text();\n }\n const message = formatApiErrorForOperation({\n operation,\n error: parsedBody,\n options: { status: response.status },\n });\n throw new ProjectsApiError(message, operation, parsedBody);\n }\n return (await response.json()) as T;\n }\n\n async list(options?: { page?: number; limit?: number }): Promise<PaginatedProjects> {\n const params = new URLSearchParams();\n if (options?.page) params.set(\"page\", String(options.page));\n if (options?.limit) params.set(\"limit\", String(options.limit));\n const qs = params.toString();\n return this.request<PaginatedProjects>(\n \"list projects\",\n `/api/projects${qs ? `?${qs}` : \"\"}`,\n );\n }\n\n async get(id: string): Promise<Project> {\n return this.request<Project>(\n `get project \"${id}\"`,\n `/api/projects/${encodeURIComponent(id)}`,\n );\n }\n\n async create(input: CreateProjectInput): Promise<ProjectWithServiceKey> {\n return this.request<ProjectWithServiceKey>(\n \"create project\",\n \"/api/projects\",\n { method: \"POST\", body: JSON.stringify(input) },\n );\n }\n\n async update(id: string, input: UpdateProjectInput): Promise<Project> {\n return this.request<Project>(\n `update project \"${id}\"`,\n `/api/projects/${encodeURIComponent(id)}`,\n { method: \"PATCH\", body: JSON.stringify(input) },\n );\n }\n\n async archive(id: string): Promise<ArchivedProject> {\n return this.request<ArchivedProject>(\n `archive project \"${id}\"`,\n `/api/projects/${encodeURIComponent(id)}`,\n { method: \"DELETE\" },\n );\n }\n}\n"]}
|
package/dist/chunk-4F3LCT7U.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
var _chunkOGAE7BVQjs = require('./chunk-OGAE7BVQ.js');
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var _chunkNC42BNF4js = require('./chunk-NC42BNF4.js');
|
|
7
|
-
|
|
8
|
-
// src/cli/utils/governance/resolveEndpoint.ts
|
|
9
|
-
function resolveControlPlaneEndpoint(opts = {}) {
|
|
10
|
-
if (opts.flag) {
|
|
11
|
-
return { url: stripTrailingSlash(opts.flag), source: "flag" };
|
|
12
|
-
}
|
|
13
|
-
const env = process.env.LANGWATCH_ENDPOINT;
|
|
14
|
-
if (env && env.trim() !== "") {
|
|
15
|
-
return { url: stripTrailingSlash(env), source: "env" };
|
|
16
|
-
}
|
|
17
|
-
let cfg = opts.cfg;
|
|
18
|
-
if (cfg === void 0) {
|
|
19
|
-
try {
|
|
20
|
-
cfg = _chunkOGAE7BVQjs.loadConfig.call(void 0, );
|
|
21
|
-
} catch (e) {
|
|
22
|
-
cfg = void 0;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
const persisted = cfg == null ? void 0 : cfg.control_plane_url;
|
|
26
|
-
if (persisted && persisted !== _chunkNC42BNF4js.DEFAULT_ENDPOINT) {
|
|
27
|
-
return { url: stripTrailingSlash(persisted), source: "config" };
|
|
28
|
-
}
|
|
29
|
-
return { url: stripTrailingSlash(_chunkNC42BNF4js.DEFAULT_ENDPOINT), source: "default" };
|
|
30
|
-
}
|
|
31
|
-
function resolveControlPlaneUrl(opts = {}) {
|
|
32
|
-
return resolveControlPlaneEndpoint(opts).url;
|
|
33
|
-
}
|
|
34
|
-
function stripTrailingSlash(url) {
|
|
35
|
-
return url.replace(/\/+$/, "");
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
exports.resolveControlPlaneEndpoint = resolveControlPlaneEndpoint; exports.resolveControlPlaneUrl = resolveControlPlaneUrl;
|
|
42
|
-
//# sourceMappingURL=chunk-4F3LCT7U.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-4F3LCT7U.js","../src/cli/utils/governance/resolveEndpoint.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACA;ACiCO,SAAS,2BAAA,CACd,KAAA,EAA+B,CAAC,CAAA,EACd;AAClB,EAAA,GAAA,CAAI,IAAA,CAAK,IAAA,EAAM;AACb,IAAA,OAAO,EAAE,GAAA,EAAK,kBAAA,CAAmB,IAAA,CAAK,IAAI,CAAA,EAAG,MAAA,EAAQ,OAAO,CAAA;AAAA,EAC9D;AACA,EAAA,MAAM,IAAA,EAAM,OAAA,CAAQ,GAAA,CAAI,kBAAA;AACxB,EAAA,GAAA,CAAI,IAAA,GAAO,GAAA,CAAI,IAAA,CAAK,EAAA,IAAM,EAAA,EAAI;AAC5B,IAAA,OAAO,EAAE,GAAA,EAAK,kBAAA,CAAmB,GAAG,CAAA,EAAG,MAAA,EAAQ,MAAM,CAAA;AAAA,EACvD;AAGA,EAAA,IAAI,IAAA,EAAM,IAAA,CAAK,GAAA;AACf,EAAA,GAAA,CAAI,IAAA,IAAQ,KAAA,CAAA,EAAW;AACrB,IAAA,IAAI;AACF,MAAA,IAAA,EAAM,yCAAA,CAAW;AAAA,IACnB,EAAA,MAAA,CAAQ,CAAA,EAAA;AACN,MAAA,IAAA,EAAM,KAAA,CAAA;AAAA,IACR;AAAA,EACF;AAKA,EAAA,MAAM,UAAA,EAAY,IAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,GAAA,CAAK,iBAAA;AACvB,EAAA,GAAA,CAAI,UAAA,GAAa,UAAA,IAAc,iCAAA,EAAkB;AAC/C,IAAA,OAAO,EAAE,GAAA,EAAK,kBAAA,CAAmB,SAAS,CAAA,EAAG,MAAA,EAAQ,SAAS,CAAA;AAAA,EAChE;AACA,EAAA,OAAO,EAAE,GAAA,EAAK,kBAAA,CAAmB,iCAAgB,CAAA,EAAG,MAAA,EAAQ,UAAU,CAAA;AACxE;AAOO,SAAS,sBAAA,CACd,KAAA,EAA+B,CAAC,CAAA,EACxB;AACR,EAAA,OAAO,2BAAA,CAA4B,IAAI,CAAA,CAAE,GAAA;AAC3C;AAEA,SAAS,kBAAA,CAAmB,GAAA,EAAqB;AAC/C,EAAA,OAAO,GAAA,CAAI,OAAA,CAAQ,MAAA,EAAQ,EAAE,CAAA;AAC/B;ADhDA;AACA;AACE;AACA;AACF,2HAAC","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-4F3LCT7U.js","sourcesContent":[null,"/**\n * Single source of truth for resolving the LangWatch control-plane URL\n * across the CLI. Replaces the previous three drifted readers\n * (`endpoint.ts:getEndpoint`, `governance/config.ts:defaults`, and the\n * inline `process.env.LANGWATCH_ENDPOINT ?? ...` literal in\n * `commands/status.ts`) so every command sees the same value for the\n * same inputs.\n *\n * Priority (highest wins):\n * 1. opts.flag — per-command override (e.g. `langwatch login --endpoint <url>`)\n * 2. LANGWATCH_ENDPOINT — env var (CI / scripts)\n * 3. persisted config — `~/.langwatch/config.json:control_plane_url` (daily driver)\n * 4. DEFAULT_ENDPOINT — `https://app.langwatch.ai` (cloud default)\n *\n * Spec: specs/ai-governance/cli-onboarding/login-unified.feature\n */\n\nimport { DEFAULT_ENDPOINT } from \"@/internal/constants\";\nimport { loadConfig } from \"./config\";\n\nexport interface ResolveEndpointOptions {\n /** Per-command override flag value (e.g. `--endpoint`). NULL/empty ignored. */\n flag?: string | null;\n /** Optional pre-loaded config to reuse (skips disk read). */\n cfg?: ReturnType<typeof loadConfig>;\n}\n\nexport interface ResolvedEndpoint {\n /** The resolved URL with trailing slashes stripped. */\n url: string;\n /** Where the value came from — useful for `langwatch config list`. */\n source: \"flag\" | \"env\" | \"config\" | \"default\";\n}\n\n/**\n * Resolve the control-plane endpoint per the documented priority order.\n *\n * Returns both the resolved URL and the source that won, so\n * `langwatch config list` can show the user where each value came from.\n */\nexport function resolveControlPlaneEndpoint(\n opts: ResolveEndpointOptions = {},\n): ResolvedEndpoint {\n if (opts.flag) {\n return { url: stripTrailingSlash(opts.flag), source: \"flag\" };\n }\n const env = process.env.LANGWATCH_ENDPOINT;\n if (env && env.trim() !== \"\") {\n return { url: stripTrailingSlash(env), source: \"env\" };\n }\n // Reading the config involves disk I/O; only do it if we need to.\n // Callers that already have a cfg in scope can pass it in to skip.\n let cfg = opts.cfg;\n if (cfg === undefined) {\n try {\n cfg = loadConfig();\n } catch {\n cfg = undefined;\n }\n }\n // The persisted control_plane_url is populated EITHER by a prior\n // `langwatch login --device` (snapshot of env at save time) OR by an\n // explicit `langwatch config set endpoint <url>`. If it differs from\n // the hardcoded default, treat it as a user choice.\n const persisted = cfg?.control_plane_url;\n if (persisted && persisted !== DEFAULT_ENDPOINT) {\n return { url: stripTrailingSlash(persisted), source: \"config\" };\n }\n return { url: stripTrailingSlash(DEFAULT_ENDPOINT), source: \"default\" };\n}\n\n/**\n * Convenience for callers that just want the URL string and don't need\n * the source-attribution. Equivalent to\n * `resolveControlPlaneEndpoint(opts).url`.\n */\nexport function resolveControlPlaneUrl(\n opts: ResolveEndpointOptions = {},\n): string {\n return resolveControlPlaneEndpoint(opts).url;\n}\n\nfunction stripTrailingSlash(url: string): string {\n return url.replace(/\\/+$/, \"\");\n}\n"]}
|
package/dist/chunk-4VOXYSVX.mjs
DELETED
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
checkApiKey
|
|
3
|
-
} from "./chunk-5C7DPGRK.mjs";
|
|
4
|
-
import {
|
|
5
|
-
PromptsApiService,
|
|
6
|
-
PromptsError
|
|
7
|
-
} from "./chunk-JBEVRIYW.mjs";
|
|
8
|
-
import {
|
|
9
|
-
ensureProjectInitialized
|
|
10
|
-
} from "./chunk-BGYXA2QV.mjs";
|
|
11
|
-
import {
|
|
12
|
-
FileManager,
|
|
13
|
-
PromptConverter
|
|
14
|
-
} from "./chunk-CEJY6QI3.mjs";
|
|
15
|
-
import {
|
|
16
|
-
formatApiErrorMessage
|
|
17
|
-
} from "./chunk-J3KM7ZO7.mjs";
|
|
18
|
-
|
|
19
|
-
// src/cli/commands/pull.ts
|
|
20
|
-
import * as fs from "fs";
|
|
21
|
-
import * as path from "path";
|
|
22
|
-
import chalk from "chalk";
|
|
23
|
-
import ora from "ora";
|
|
24
|
-
var pullPrompts = async ({
|
|
25
|
-
config,
|
|
26
|
-
lock,
|
|
27
|
-
promptsApiService,
|
|
28
|
-
result,
|
|
29
|
-
tag
|
|
30
|
-
}) => {
|
|
31
|
-
var _a;
|
|
32
|
-
const remoteDeps = Object.entries(config.prompts).filter(
|
|
33
|
-
([, dependency]) => {
|
|
34
|
-
if (typeof dependency === "object" && dependency.file) {
|
|
35
|
-
return false;
|
|
36
|
-
}
|
|
37
|
-
if (typeof dependency === "string" && dependency.startsWith("file:")) {
|
|
38
|
-
return false;
|
|
39
|
-
}
|
|
40
|
-
return true;
|
|
41
|
-
}
|
|
42
|
-
);
|
|
43
|
-
if (remoteDeps.length > 0) {
|
|
44
|
-
const fetchSpinner = ora(
|
|
45
|
-
`Checking ${remoteDeps.length} remote prompts...`
|
|
46
|
-
).start();
|
|
47
|
-
for (const [name, dependency] of remoteDeps) {
|
|
48
|
-
try {
|
|
49
|
-
const versionSpec = typeof dependency === "string" ? dependency : (_a = dependency.version) != null ? _a : "latest";
|
|
50
|
-
const displaySpec = tag != null ? tag : versionSpec;
|
|
51
|
-
const lockEntry = lock.prompts[name];
|
|
52
|
-
const prompt = tag ? await promptsApiService.get(name, { tag }) : await promptsApiService.get(name, { version: versionSpec });
|
|
53
|
-
if (prompt) {
|
|
54
|
-
const needsUpdate = (lockEntry == null ? void 0 : lockEntry.version) !== prompt.version || !lockEntry.materialized || !fs.existsSync(path.resolve(lockEntry.materialized));
|
|
55
|
-
if (needsUpdate) {
|
|
56
|
-
const materializedPrompt = PromptConverter.fromApiToMaterialized(prompt);
|
|
57
|
-
const savedPath = FileManager.saveMaterializedPrompt(
|
|
58
|
-
name,
|
|
59
|
-
materializedPrompt
|
|
60
|
-
);
|
|
61
|
-
const relativePath = path.relative(process.cwd(), savedPath);
|
|
62
|
-
result.fetched.push({
|
|
63
|
-
name,
|
|
64
|
-
version: prompt.version,
|
|
65
|
-
versionSpec: displaySpec
|
|
66
|
-
});
|
|
67
|
-
FileManager.updateLockEntry(
|
|
68
|
-
lock,
|
|
69
|
-
name,
|
|
70
|
-
materializedPrompt,
|
|
71
|
-
savedPath
|
|
72
|
-
);
|
|
73
|
-
fetchSpinner.text = `Fetched ${chalk.cyan(
|
|
74
|
-
`${name}@${displaySpec}`
|
|
75
|
-
)} ${chalk.gray(`(version ${prompt.version})`)} \u2192 ${chalk.gray(
|
|
76
|
-
relativePath
|
|
77
|
-
)}`;
|
|
78
|
-
} else {
|
|
79
|
-
result.unchanged.push(name);
|
|
80
|
-
}
|
|
81
|
-
} else {
|
|
82
|
-
result.errors.push({ name, error: "Prompt not found" });
|
|
83
|
-
}
|
|
84
|
-
} catch (error) {
|
|
85
|
-
const errorMessage = formatApiErrorMessage({ error });
|
|
86
|
-
result.errors.push({ name, error: errorMessage });
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
fetchSpinner.stop();
|
|
90
|
-
}
|
|
91
|
-
const currentDependencies = new Set(
|
|
92
|
-
Object.keys(config.prompts).filter((name) => {
|
|
93
|
-
const dependency = config.prompts[name];
|
|
94
|
-
if (typeof dependency === "object" && dependency.file) {
|
|
95
|
-
return false;
|
|
96
|
-
}
|
|
97
|
-
if (typeof dependency === "string" && dependency.startsWith("file:")) {
|
|
98
|
-
return false;
|
|
99
|
-
}
|
|
100
|
-
return true;
|
|
101
|
-
})
|
|
102
|
-
);
|
|
103
|
-
const cleanedFiles = FileManager.cleanupOrphanedMaterializedFiles(currentDependencies);
|
|
104
|
-
if (cleanedFiles.length > 0) {
|
|
105
|
-
result.cleaned = cleanedFiles;
|
|
106
|
-
FileManager.removeFromLock(lock, cleanedFiles);
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
var printPullResults = ({
|
|
110
|
-
result,
|
|
111
|
-
lock,
|
|
112
|
-
duration
|
|
113
|
-
}) => {
|
|
114
|
-
if (result.fetched.length > 0) {
|
|
115
|
-
for (const { name, version, versionSpec } of result.fetched) {
|
|
116
|
-
const lockEntry = lock.prompts[name];
|
|
117
|
-
const displayPath = (lockEntry == null ? void 0 : lockEntry.materialized) ? `./${lockEntry.materialized}` : `./prompts/.materialized/${name}.prompt.yaml`;
|
|
118
|
-
console.log(
|
|
119
|
-
chalk.green(
|
|
120
|
-
`\u2713 Pulled ${chalk.cyan(`${name}@${versionSpec}`)} ${chalk.gray(
|
|
121
|
-
`(version ${version})`
|
|
122
|
-
)} \u2192 ${chalk.gray(displayPath)}`
|
|
123
|
-
)
|
|
124
|
-
);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
if (result.cleaned.length > 0) {
|
|
128
|
-
for (const name of result.cleaned) {
|
|
129
|
-
console.log(
|
|
130
|
-
chalk.yellow(
|
|
131
|
-
`\u2713 Cleaned ${chalk.cyan(name)} (no longer in dependencies)`
|
|
132
|
-
)
|
|
133
|
-
);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
if (result.errors.length > 0) {
|
|
137
|
-
for (const { name, error } of result.errors) {
|
|
138
|
-
console.error(chalk.red(`\u2717 Failed ${chalk.cyan(name)}: ${error}`));
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
const totalActions = result.fetched.length + result.cleaned.length;
|
|
142
|
-
if (totalActions === 0 && result.errors.length === 0) {
|
|
143
|
-
console.log(chalk.gray(`Pulled in ${duration}s, no changes`));
|
|
144
|
-
} else {
|
|
145
|
-
const summary = [];
|
|
146
|
-
if (result.fetched.length > 0)
|
|
147
|
-
summary.push(`${result.fetched.length} fetched`);
|
|
148
|
-
if (result.cleaned.length > 0)
|
|
149
|
-
summary.push(`${result.cleaned.length} cleaned`);
|
|
150
|
-
if (result.errors.length > 0)
|
|
151
|
-
summary.push(`${result.errors.length} errors`);
|
|
152
|
-
console.log(chalk.gray(`Pulled ${summary.join(", ")} in ${duration}s`));
|
|
153
|
-
}
|
|
154
|
-
};
|
|
155
|
-
var pullCommand = async (options) => {
|
|
156
|
-
console.log("\u2B07\uFE0F Pulling remote prompts...");
|
|
157
|
-
const startTime = Date.now();
|
|
158
|
-
try {
|
|
159
|
-
checkApiKey();
|
|
160
|
-
const promptsApiService = new PromptsApiService();
|
|
161
|
-
await ensureProjectInitialized(false);
|
|
162
|
-
const config = FileManager.loadPromptsConfig();
|
|
163
|
-
const lock = FileManager.loadPromptsLock();
|
|
164
|
-
const result = {
|
|
165
|
-
fetched: [],
|
|
166
|
-
pushed: [],
|
|
167
|
-
unchanged: [],
|
|
168
|
-
cleaned: [],
|
|
169
|
-
errors: []
|
|
170
|
-
};
|
|
171
|
-
await pullPrompts({ config, lock, promptsApiService, result, tag: options == null ? void 0 : options.tag });
|
|
172
|
-
FileManager.savePromptsLock(lock);
|
|
173
|
-
const duration = ((Date.now() - startTime) / 1e3).toFixed(1);
|
|
174
|
-
printPullResults({ result, lock, duration });
|
|
175
|
-
if (result.errors.length > 0) {
|
|
176
|
-
process.exit(1);
|
|
177
|
-
}
|
|
178
|
-
} catch (error) {
|
|
179
|
-
if (error instanceof PromptsError) {
|
|
180
|
-
console.error(chalk.red(`Error: ${error.message}`));
|
|
181
|
-
} else {
|
|
182
|
-
console.error(
|
|
183
|
-
chalk.red(
|
|
184
|
-
`Unexpected error: ${formatApiErrorMessage({ error })}`
|
|
185
|
-
)
|
|
186
|
-
);
|
|
187
|
-
}
|
|
188
|
-
process.exit(1);
|
|
189
|
-
}
|
|
190
|
-
};
|
|
191
|
-
|
|
192
|
-
export {
|
|
193
|
-
pullPrompts,
|
|
194
|
-
pullCommand
|
|
195
|
-
};
|
|
196
|
-
//# sourceMappingURL=chunk-4VOXYSVX.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/commands/pull.ts"],"sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport { PromptConverter } from \"@/cli/utils/promptConverter\";\nimport {\n PromptsApiService,\n PromptsError,\n} from \"@/client-sdk/services/prompts\";\nimport type { PromptsConfig, PromptsLock, SyncResult } from \"../types\";\nimport { FileManager } from \"../utils/fileManager\";\nimport { ensureProjectInitialized } from \"../utils/init\";\nimport { checkApiKey } from \"../utils/apiKey\";\nimport { formatApiErrorMessage } from \"@/client-sdk/services/_shared/format-api-error\";\n\n/**\n * Core pull logic: fetches remote prompts and materializes them locally.\n * Returns the result and mutates the lock object in place.\n */\nexport const pullPrompts = async ({\n config,\n lock,\n promptsApiService,\n result,\n tag,\n}: {\n config: PromptsConfig;\n lock: PromptsLock;\n promptsApiService: PromptsApiService;\n result: SyncResult;\n tag?: string;\n}): Promise<void> => {\n const remoteDeps = Object.entries(config.prompts).filter(\n ([, dependency]) => {\n if (typeof dependency === \"object\" && dependency.file) {\n return false;\n }\n if (typeof dependency === \"string\" && dependency.startsWith(\"file:\")) {\n return false;\n }\n return true;\n }\n );\n\n if (remoteDeps.length > 0) {\n const fetchSpinner = ora(\n `Checking ${remoteDeps.length} remote prompts...`\n ).start();\n\n for (const [name, dependency] of remoteDeps) {\n try {\n const versionSpec =\n typeof dependency === \"string\"\n ? dependency\n : dependency.version ?? \"latest\";\n\n const displaySpec = tag ?? versionSpec;\n\n const lockEntry = lock.prompts[name];\n\n const prompt = tag\n ? await promptsApiService.get(name, { tag })\n : await promptsApiService.get(name, { version: versionSpec });\n\n if (prompt) {\n const needsUpdate =\n lockEntry?.version !== prompt.version ||\n !lockEntry.materialized ||\n !fs.existsSync(path.resolve(lockEntry.materialized));\n\n if (needsUpdate) {\n const materializedPrompt =\n PromptConverter.fromApiToMaterialized(prompt);\n\n const savedPath = FileManager.saveMaterializedPrompt(\n name,\n materializedPrompt\n );\n const relativePath = path.relative(process.cwd(), savedPath);\n result.fetched.push({\n name,\n version: prompt.version,\n versionSpec: displaySpec,\n });\n\n FileManager.updateLockEntry(\n lock,\n name,\n materializedPrompt,\n savedPath\n );\n\n fetchSpinner.text = `Fetched ${chalk.cyan(\n `${name}@${displaySpec}`\n )} ${chalk.gray(`(version ${prompt.version})`)} → ${chalk.gray(\n relativePath\n )}`;\n } else {\n result.unchanged.push(name);\n }\n } else {\n result.errors.push({ name, error: \"Prompt not found\" });\n }\n } catch (error) {\n const errorMessage =\n formatApiErrorMessage({ error });\n result.errors.push({ name, error: errorMessage });\n }\n }\n\n fetchSpinner.stop();\n }\n\n // Cleanup orphaned materialized files\n const currentDependencies = new Set(\n Object.keys(config.prompts).filter((name) => {\n const dependency = config.prompts[name];\n if (typeof dependency === \"object\" && dependency.file) {\n return false;\n }\n if (typeof dependency === \"string\" && dependency.startsWith(\"file:\")) {\n return false;\n }\n return true;\n })\n );\n\n const cleanedFiles =\n FileManager.cleanupOrphanedMaterializedFiles(currentDependencies);\n if (cleanedFiles.length > 0) {\n result.cleaned = cleanedFiles;\n FileManager.removeFromLock(lock, cleanedFiles);\n }\n};\n\nconst printPullResults = ({\n result,\n lock,\n duration,\n}: {\n result: SyncResult;\n lock: PromptsLock;\n duration: string;\n}): void => {\n if (result.fetched.length > 0) {\n for (const { name, version, versionSpec } of result.fetched) {\n const lockEntry = lock.prompts[name];\n const displayPath = lockEntry?.materialized\n ? `./${lockEntry.materialized}`\n : `./prompts/.materialized/${name}.prompt.yaml`;\n\n console.log(\n chalk.green(\n `✓ Pulled ${chalk.cyan(`${name}@${versionSpec}`)} ${chalk.gray(\n `(version ${version})`\n )} → ${chalk.gray(displayPath)}`\n )\n );\n }\n }\n\n if (result.cleaned.length > 0) {\n for (const name of result.cleaned) {\n console.log(\n chalk.yellow(\n `✓ Cleaned ${chalk.cyan(name)} (no longer in dependencies)`\n )\n );\n }\n }\n\n if (result.errors.length > 0) {\n for (const { name, error } of result.errors) {\n console.error(chalk.red(`✗ Failed ${chalk.cyan(name)}: ${error}`));\n }\n }\n\n const totalActions = result.fetched.length + result.cleaned.length;\n\n if (totalActions === 0 && result.errors.length === 0) {\n console.log(chalk.gray(`Pulled in ${duration}s, no changes`));\n } else {\n const summary = [];\n if (result.fetched.length > 0)\n summary.push(`${result.fetched.length} fetched`);\n if (result.cleaned.length > 0)\n summary.push(`${result.cleaned.length} cleaned`);\n if (result.errors.length > 0)\n summary.push(`${result.errors.length} errors`);\n\n console.log(chalk.gray(`Pulled ${summary.join(\", \")} in ${duration}s`));\n }\n};\n\nexport const pullCommand = async (options?: { tag?: string }): Promise<void> => {\n console.log(\"⬇️ Pulling remote prompts...\");\n\n const startTime = Date.now();\n\n try {\n checkApiKey();\n\n const promptsApiService = new PromptsApiService();\n\n await ensureProjectInitialized(false);\n\n const config = FileManager.loadPromptsConfig();\n const lock = FileManager.loadPromptsLock();\n\n const result: SyncResult = {\n fetched: [],\n pushed: [],\n unchanged: [],\n cleaned: [],\n errors: [],\n };\n\n await pullPrompts({ config, lock, promptsApiService, result, tag: options?.tag });\n\n FileManager.savePromptsLock(lock);\n\n const duration = ((Date.now() - startTime) / 1000).toFixed(1);\n printPullResults({ result, lock, duration });\n\n if (result.errors.length > 0) {\n process.exit(1);\n }\n } catch (error) {\n if (error instanceof PromptsError) {\n console.error(chalk.red(`Error: ${error.message}`));\n } else {\n console.error(\n chalk.red(\n `Unexpected error: ${\n formatApiErrorMessage({ error })\n }`\n )\n );\n }\n process.exit(1);\n }\n};\n"],"mappings":"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","names":[]}
|
package/dist/chunk-5C7DPGRK.mjs
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
resolveControlPlaneUrl
|
|
3
|
-
} from "./chunk-XLJ5GJTK.mjs";
|
|
4
|
-
|
|
5
|
-
// src/cli/utils/apiKey.ts
|
|
6
|
-
import chalk from "chalk";
|
|
7
|
-
import { config } from "dotenv";
|
|
8
|
-
|
|
9
|
-
// src/cli/utils/endpoint.ts
|
|
10
|
-
function getEndpoint() {
|
|
11
|
-
return resolveControlPlaneUrl();
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
// src/cli/utils/apiKey.ts
|
|
15
|
-
var checkApiKey = () => {
|
|
16
|
-
config({ quiet: true });
|
|
17
|
-
const apiKey = process.env.LANGWATCH_API_KEY;
|
|
18
|
-
if (!apiKey || apiKey.trim() === "") {
|
|
19
|
-
const authUrl = `${getEndpoint()}/authorize`;
|
|
20
|
-
console.error(chalk.red("Error: LANGWATCH_API_KEY not found."));
|
|
21
|
-
console.error(chalk.gray("Get your API key from:"));
|
|
22
|
-
console.error(chalk.cyan(` ${authUrl}`));
|
|
23
|
-
console.error(chalk.gray("Then either run:"));
|
|
24
|
-
console.error(chalk.cyan(" langwatch login --api-key <your-key>"));
|
|
25
|
-
console.error(chalk.gray("Or add it to your .env file:"));
|
|
26
|
-
console.error(chalk.cyan(" echo 'LANGWATCH_API_KEY=<your-key>' >> .env"));
|
|
27
|
-
process.exit(1);
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
export {
|
|
32
|
-
checkApiKey
|
|
33
|
-
};
|
|
34
|
-
//# sourceMappingURL=chunk-5C7DPGRK.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/utils/apiKey.ts","../src/cli/utils/endpoint.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport { config } from \"dotenv\";\nimport { getEndpoint } from \"./endpoint\";\n\nexport const checkApiKey = (): void => {\n // Load environment variables from .env file\n config({ quiet: true });\n\n const apiKey = process.env.LANGWATCH_API_KEY;\n\n if (!apiKey || apiKey.trim() === \"\") {\n const authUrl = `${getEndpoint()}/authorize`;\n console.error(chalk.red(\"Error: LANGWATCH_API_KEY not found.\"));\n console.error(chalk.gray(\"Get your API key from:\"));\n console.error(chalk.cyan(` ${authUrl}`));\n console.error(chalk.gray(\"Then either run:\"));\n console.error(chalk.cyan(\" langwatch login --api-key <your-key>\"));\n console.error(chalk.gray(\"Or add it to your .env file:\"));\n console.error(chalk.cyan(\" echo 'LANGWATCH_API_KEY=<your-key>' >> .env\"));\n process.exit(1);\n }\n};","import { resolveControlPlaneUrl } from \"@/cli/utils/governance/resolveEndpoint\";\n\n/**\n * Returns the LangWatch endpoint with any trailing slashes stripped, so callers\n * can safely concatenate paths like `${endpoint}/authorize` without producing\n * `https://app.langwatch.ai//authorize`.\n *\n * Delegates to the single 4-source resolver (flag > env > persisted config >\n * default). This is a thin wrapper preserved for callers that don't need the\n * `--flag` axis. New callers should use `resolveControlPlaneEndpoint()`\n * directly so the source attribution is available.\n *\n * Spec: specs/ai-governance/cli-onboarding/login-unified.feature\n */\nexport function getEndpoint(): string {\n return resolveControlPlaneUrl();\n}\n"],"mappings":";;;;;AAAA,OAAO,WAAW;AAClB,SAAS,cAAc;;;ACahB,SAAS,cAAsB;AACpC,SAAO,uBAAuB;AAChC;;;ADZO,IAAM,cAAc,MAAY;AAErC,SAAO,EAAE,OAAO,KAAK,CAAC;AAEtB,QAAM,SAAS,QAAQ,IAAI;AAE3B,MAAI,CAAC,UAAU,OAAO,KAAK,MAAM,IAAI;AACnC,UAAM,UAAU,GAAG,YAAY,CAAC;AAChC,YAAQ,MAAM,MAAM,IAAI,qCAAqC,CAAC;AAC9D,YAAQ,MAAM,MAAM,KAAK,wBAAwB,CAAC;AAClD,YAAQ,MAAM,MAAM,KAAK,KAAK,OAAO,EAAE,CAAC;AACxC,YAAQ,MAAM,MAAM,KAAK,kBAAkB,CAAC;AAC5C,YAAQ,MAAM,MAAM,KAAK,wCAAwC,CAAC;AAClE,YAAQ,MAAM,MAAM,KAAK,8BAA8B,CAAC;AACxD,YAAQ,MAAM,MAAM,KAAK,+CAA+C,CAAC;AACzE,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;","names":[]}
|