@ainetwork/adk 0.3.6 → 0.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/chunk-257LB5MI.cjs +17 -0
- package/dist/cjs/chunk-257LB5MI.cjs.map +1 -0
- package/dist/cjs/chunk-2H7YXXKF.cjs +38 -0
- package/dist/cjs/chunk-2H7YXXKF.cjs.map +1 -0
- package/dist/cjs/chunk-2PCMBTXX.cjs +17 -0
- package/dist/cjs/chunk-2PCMBTXX.cjs.map +1 -0
- package/dist/cjs/chunk-2YT6WOL2.cjs +44 -0
- package/dist/cjs/chunk-2YT6WOL2.cjs.map +1 -0
- package/dist/cjs/chunk-33HKSNG7.cjs +18 -0
- package/dist/cjs/chunk-33HKSNG7.cjs.map +1 -0
- package/dist/cjs/chunk-34QKYJJA.cjs +62 -0
- package/dist/cjs/chunk-34QKYJJA.cjs.map +1 -0
- package/dist/cjs/chunk-36IQIRJO.cjs +44 -0
- package/dist/cjs/chunk-36IQIRJO.cjs.map +1 -0
- package/dist/cjs/chunk-3CCO4M2T.cjs +18 -0
- package/dist/cjs/chunk-3CCO4M2T.cjs.map +1 -0
- package/dist/cjs/chunk-3CWYO4DR.cjs +29 -0
- package/dist/cjs/chunk-3CWYO4DR.cjs.map +1 -0
- package/dist/cjs/chunk-3FSMQH6T.cjs +60 -0
- package/dist/cjs/chunk-3FSMQH6T.cjs.map +1 -0
- package/dist/cjs/chunk-3J7RAJKT.cjs +17 -0
- package/dist/cjs/chunk-3J7RAJKT.cjs.map +1 -0
- package/dist/cjs/chunk-3NR7RC2M.cjs +52 -0
- package/dist/cjs/chunk-3NR7RC2M.cjs.map +1 -0
- package/dist/cjs/chunk-3OLHAXDU.cjs +92 -0
- package/dist/cjs/chunk-3OLHAXDU.cjs.map +1 -0
- package/dist/cjs/chunk-3QBMBRXS.cjs +44 -0
- package/dist/cjs/chunk-3QBMBRXS.cjs.map +1 -0
- package/dist/cjs/chunk-3RPRJF2T.cjs +45 -0
- package/dist/cjs/chunk-3RPRJF2T.cjs.map +1 -0
- package/dist/cjs/chunk-4MV4JCVO.cjs +62 -0
- package/dist/cjs/chunk-4MV4JCVO.cjs.map +1 -0
- package/dist/cjs/chunk-4P7BIS7W.cjs +89 -0
- package/dist/cjs/chunk-4P7BIS7W.cjs.map +1 -0
- package/dist/cjs/chunk-4U5AKJ4H.cjs +376 -0
- package/dist/cjs/chunk-4U5AKJ4H.cjs.map +1 -0
- package/dist/cjs/chunk-5BQBOLKF.cjs +18 -0
- package/dist/cjs/chunk-5BQBOLKF.cjs.map +1 -0
- package/dist/cjs/chunk-5ON32BOF.cjs +44 -0
- package/dist/cjs/chunk-5ON32BOF.cjs.map +1 -0
- package/dist/cjs/chunk-5QAUKT4U.cjs +74 -0
- package/dist/cjs/chunk-5QAUKT4U.cjs.map +1 -0
- package/dist/cjs/chunk-5QK57J6T.cjs +29 -0
- package/dist/cjs/chunk-5QK57J6T.cjs.map +1 -0
- package/dist/cjs/chunk-6ENXUHR3.cjs +18 -0
- package/dist/cjs/chunk-6ENXUHR3.cjs.map +1 -0
- package/dist/cjs/chunk-6KXWGXJM.cjs +89 -0
- package/dist/cjs/chunk-6KXWGXJM.cjs.map +1 -0
- package/dist/cjs/chunk-6VEASJDK.cjs +62 -0
- package/dist/cjs/chunk-6VEASJDK.cjs.map +1 -0
- package/dist/cjs/chunk-6VHRJD7F.cjs +17 -0
- package/dist/cjs/chunk-6VHRJD7F.cjs.map +1 -0
- package/dist/cjs/chunk-6Z2RYVUO.cjs +74 -0
- package/dist/cjs/chunk-6Z2RYVUO.cjs.map +1 -0
- package/dist/cjs/chunk-6Z5XTC56.cjs +17 -0
- package/dist/cjs/chunk-6Z5XTC56.cjs.map +1 -0
- package/dist/cjs/chunk-75RI45E4.cjs +44 -0
- package/dist/cjs/chunk-75RI45E4.cjs.map +1 -0
- package/dist/cjs/chunk-76LBH57A.cjs +18 -0
- package/dist/cjs/chunk-76LBH57A.cjs.map +1 -0
- package/dist/cjs/chunk-76M7BSJ3.cjs +44 -0
- package/dist/cjs/chunk-76M7BSJ3.cjs.map +1 -0
- package/dist/cjs/chunk-7BO5E2NH.cjs +365 -0
- package/dist/cjs/chunk-7BO5E2NH.cjs.map +1 -0
- package/dist/cjs/chunk-7K5Z7DWN.cjs +361 -0
- package/dist/cjs/chunk-7K5Z7DWN.cjs.map +1 -0
- package/dist/cjs/chunk-7MKV6BXH.cjs +29 -0
- package/dist/cjs/chunk-7MKV6BXH.cjs.map +1 -0
- package/dist/cjs/chunk-7QRK2PZ7.cjs +18 -0
- package/dist/cjs/chunk-7QRK2PZ7.cjs.map +1 -0
- package/dist/cjs/chunk-7ZASM7UH.cjs +18 -0
- package/dist/cjs/chunk-7ZASM7UH.cjs.map +1 -0
- package/dist/cjs/chunk-A5SOUOEA.cjs +89 -0
- package/dist/cjs/chunk-A5SOUOEA.cjs.map +1 -0
- package/dist/cjs/chunk-AAUUAPCC.cjs +38 -0
- package/dist/cjs/chunk-AAUUAPCC.cjs.map +1 -0
- package/dist/cjs/chunk-AEPKSXT7.cjs +44 -0
- package/dist/cjs/chunk-AEPKSXT7.cjs.map +1 -0
- package/dist/cjs/chunk-AKDAUOUK.cjs +44 -0
- package/dist/cjs/chunk-AKDAUOUK.cjs.map +1 -0
- package/dist/cjs/chunk-AKQQCR26.cjs +17 -0
- package/dist/cjs/chunk-AKQQCR26.cjs.map +1 -0
- package/dist/cjs/chunk-ALPK75M7.cjs +100 -0
- package/dist/cjs/chunk-ALPK75M7.cjs.map +1 -0
- package/dist/cjs/chunk-AMKL65AS.cjs +20 -0
- package/dist/cjs/chunk-AMKL65AS.cjs.map +1 -0
- package/dist/cjs/chunk-AWKZRMOE.cjs +17 -0
- package/dist/cjs/chunk-AWKZRMOE.cjs.map +1 -0
- package/dist/cjs/chunk-B2QI7F2C.cjs +74 -0
- package/dist/cjs/chunk-B2QI7F2C.cjs.map +1 -0
- package/dist/cjs/chunk-B6D34MKF.cjs +29 -0
- package/dist/cjs/chunk-B6D34MKF.cjs.map +1 -0
- package/dist/cjs/chunk-BBUDDS2U.cjs +62 -0
- package/dist/cjs/chunk-BBUDDS2U.cjs.map +1 -0
- package/dist/cjs/chunk-BESFTGZE.cjs +89 -0
- package/dist/cjs/chunk-BESFTGZE.cjs.map +1 -0
- package/dist/cjs/chunk-BQ7N5GR2.cjs +74 -0
- package/dist/cjs/chunk-BQ7N5GR2.cjs.map +1 -0
- package/dist/cjs/chunk-BUVFXGID.cjs +17 -0
- package/dist/cjs/chunk-BUVFXGID.cjs.map +1 -0
- package/dist/cjs/chunk-CDKYYWPR.cjs +44 -0
- package/dist/cjs/chunk-CDKYYWPR.cjs.map +1 -0
- package/dist/cjs/chunk-CGBTMF5T.cjs +160 -0
- package/dist/cjs/chunk-CGBTMF5T.cjs.map +1 -0
- package/dist/cjs/chunk-CPOJVACJ.cjs +44 -0
- package/dist/cjs/chunk-CPOJVACJ.cjs.map +1 -0
- package/dist/cjs/chunk-CX3MFVU4.cjs +85 -0
- package/dist/cjs/chunk-CX3MFVU4.cjs.map +1 -0
- package/dist/cjs/chunk-DUTUWBRW.cjs +38 -0
- package/dist/cjs/chunk-DUTUWBRW.cjs.map +1 -0
- package/dist/cjs/chunk-DXUGFSHK.cjs +11 -0
- package/dist/cjs/chunk-DXUGFSHK.cjs.map +1 -0
- package/dist/cjs/chunk-E3CMG6RX.cjs +44 -0
- package/dist/cjs/chunk-E3CMG6RX.cjs.map +1 -0
- package/dist/cjs/chunk-EAEGZUHR.cjs +38 -0
- package/dist/cjs/chunk-EAEGZUHR.cjs.map +1 -0
- package/dist/cjs/chunk-EJFZ3FVM.cjs +17 -0
- package/dist/cjs/chunk-EJFZ3FVM.cjs.map +1 -0
- package/dist/cjs/chunk-EJMGDCI2.cjs +95 -0
- package/dist/cjs/chunk-EJMGDCI2.cjs.map +1 -0
- package/dist/cjs/chunk-EOLXWHTI.cjs +17 -0
- package/dist/cjs/chunk-EOLXWHTI.cjs.map +1 -0
- package/dist/cjs/chunk-EY6LRYGR.cjs +44 -0
- package/dist/cjs/chunk-EY6LRYGR.cjs.map +1 -0
- package/dist/cjs/chunk-FANWWNES.cjs +38 -0
- package/dist/cjs/chunk-FANWWNES.cjs.map +1 -0
- package/dist/cjs/chunk-FFOBJEZ4.cjs +18 -0
- package/dist/cjs/chunk-FFOBJEZ4.cjs.map +1 -0
- package/dist/cjs/chunk-FLGB7KZC.cjs +74 -0
- package/dist/cjs/chunk-FLGB7KZC.cjs.map +1 -0
- package/dist/cjs/chunk-FRURA3TL.cjs +18 -0
- package/dist/cjs/chunk-FRURA3TL.cjs.map +1 -0
- package/dist/cjs/chunk-FXJABXH2.cjs +44 -0
- package/dist/cjs/chunk-FXJABXH2.cjs.map +1 -0
- package/dist/cjs/chunk-FYIPH2Y6.cjs +38 -0
- package/dist/cjs/chunk-FYIPH2Y6.cjs.map +1 -0
- package/dist/cjs/chunk-G2YDAC3K.cjs +17 -0
- package/dist/cjs/chunk-G2YDAC3K.cjs.map +1 -0
- package/dist/cjs/chunk-G5E3ISQF.cjs +18 -0
- package/dist/cjs/chunk-G5E3ISQF.cjs.map +1 -0
- package/dist/cjs/chunk-GE3YIMKB.cjs +38 -0
- package/dist/cjs/chunk-GE3YIMKB.cjs.map +1 -0
- package/dist/cjs/chunk-GGZLS3DW.cjs +362 -0
- package/dist/cjs/chunk-GGZLS3DW.cjs.map +1 -0
- package/dist/cjs/chunk-GP7IXGFK.cjs +17 -0
- package/dist/cjs/chunk-GP7IXGFK.cjs.map +1 -0
- package/dist/cjs/chunk-GQ7GLAJK.cjs +29 -0
- package/dist/cjs/chunk-GQ7GLAJK.cjs.map +1 -0
- package/dist/cjs/chunk-GS4SRUTV.cjs +89 -0
- package/dist/cjs/chunk-GS4SRUTV.cjs.map +1 -0
- package/dist/cjs/chunk-GU6HDVQH.cjs +62 -0
- package/dist/cjs/chunk-GU6HDVQH.cjs.map +1 -0
- package/dist/cjs/chunk-HFYBAX4K.cjs +89 -0
- package/dist/cjs/chunk-HFYBAX4K.cjs.map +1 -0
- package/dist/cjs/chunk-HLTFUIIN.cjs +16 -0
- package/dist/cjs/chunk-HLTFUIIN.cjs.map +1 -0
- package/dist/cjs/chunk-HMLQQSC5.cjs +45 -0
- package/dist/cjs/chunk-HMLQQSC5.cjs.map +1 -0
- package/dist/cjs/chunk-I25WEIX7.cjs +44 -0
- package/dist/cjs/chunk-I25WEIX7.cjs.map +1 -0
- package/dist/cjs/chunk-IMLEZU2H.cjs +44 -0
- package/dist/cjs/chunk-IMLEZU2H.cjs.map +1 -0
- package/dist/cjs/chunk-ISLBO7I5.cjs +29 -0
- package/dist/cjs/chunk-ISLBO7I5.cjs.map +1 -0
- package/dist/cjs/chunk-J6GZHVKA.cjs +17 -0
- package/dist/cjs/chunk-J6GZHVKA.cjs.map +1 -0
- package/dist/cjs/chunk-J7XZEYNH.cjs +18 -0
- package/dist/cjs/chunk-J7XZEYNH.cjs.map +1 -0
- package/dist/cjs/chunk-JBW43DLI.cjs +44 -0
- package/dist/cjs/chunk-JBW43DLI.cjs.map +1 -0
- package/dist/cjs/chunk-JJOPCTCU.cjs +17 -0
- package/dist/cjs/chunk-JJOPCTCU.cjs.map +1 -0
- package/dist/cjs/chunk-JLA2XKKK.cjs +17 -0
- package/dist/cjs/chunk-JLA2XKKK.cjs.map +1 -0
- package/dist/cjs/chunk-JRAXCPQO.cjs +44 -0
- package/dist/cjs/chunk-JRAXCPQO.cjs.map +1 -0
- package/dist/cjs/chunk-KAEDNRF3.cjs +97 -0
- package/dist/cjs/chunk-KAEDNRF3.cjs.map +1 -0
- package/dist/cjs/chunk-KHG7EBRN.cjs +17 -0
- package/dist/cjs/chunk-KHG7EBRN.cjs.map +1 -0
- package/dist/cjs/chunk-KJ4E6VUE.cjs +62 -0
- package/dist/cjs/chunk-KJ4E6VUE.cjs.map +1 -0
- package/dist/cjs/chunk-KJJ6WEOJ.cjs +11 -0
- package/dist/cjs/chunk-KJJ6WEOJ.cjs.map +1 -0
- package/dist/cjs/chunk-KMREZ7PZ.cjs +74 -0
- package/dist/cjs/chunk-KMREZ7PZ.cjs.map +1 -0
- package/dist/cjs/chunk-KN5CERX5.cjs +89 -0
- package/dist/cjs/chunk-KN5CERX5.cjs.map +1 -0
- package/dist/cjs/chunk-KQDMWEET.cjs +18 -0
- package/dist/cjs/chunk-KQDMWEET.cjs.map +1 -0
- package/dist/cjs/chunk-KWYDGO4G.cjs +62 -0
- package/dist/cjs/chunk-KWYDGO4G.cjs.map +1 -0
- package/dist/cjs/chunk-L6EOB53F.cjs +79 -0
- package/dist/cjs/chunk-L6EOB53F.cjs.map +1 -0
- package/dist/cjs/chunk-LDLF7MAE.cjs +132 -0
- package/dist/cjs/chunk-LDLF7MAE.cjs.map +1 -0
- package/dist/cjs/chunk-LI2XLHPP.cjs +38 -0
- package/dist/cjs/chunk-LI2XLHPP.cjs.map +1 -0
- package/dist/cjs/chunk-LJRPZUWA.cjs +104 -0
- package/dist/cjs/chunk-LJRPZUWA.cjs.map +1 -0
- package/dist/cjs/chunk-LKUN737V.cjs +74 -0
- package/dist/cjs/chunk-LKUN737V.cjs.map +1 -0
- package/dist/cjs/chunk-LLHF36B4.cjs +74 -0
- package/dist/cjs/chunk-LLHF36B4.cjs.map +1 -0
- package/dist/cjs/chunk-LMRBAR7I.cjs +89 -0
- package/dist/cjs/chunk-LMRBAR7I.cjs.map +1 -0
- package/dist/cjs/chunk-LUNBSV2I.cjs +74 -0
- package/dist/cjs/chunk-LUNBSV2I.cjs.map +1 -0
- package/dist/cjs/chunk-LVIMWZQS.cjs +89 -0
- package/dist/cjs/chunk-LVIMWZQS.cjs.map +1 -0
- package/dist/cjs/chunk-MAXQRRIY.cjs +365 -0
- package/dist/cjs/chunk-MAXQRRIY.cjs.map +1 -0
- package/dist/cjs/chunk-MNZP3CZB.cjs +45 -0
- package/dist/cjs/chunk-MNZP3CZB.cjs.map +1 -0
- package/dist/cjs/chunk-MOFEEAGY.cjs +17 -0
- package/dist/cjs/chunk-MOFEEAGY.cjs.map +1 -0
- package/dist/cjs/chunk-MTMT3CVP.cjs +17 -0
- package/dist/cjs/chunk-MTMT3CVP.cjs.map +1 -0
- package/dist/cjs/chunk-MYS55MIK.cjs +38 -0
- package/dist/cjs/chunk-MYS55MIK.cjs.map +1 -0
- package/dist/cjs/chunk-N6U4EN2R.cjs +44 -0
- package/dist/cjs/chunk-N6U4EN2R.cjs.map +1 -0
- package/dist/cjs/chunk-NBQ3VSRH.cjs +38 -0
- package/dist/cjs/chunk-NBQ3VSRH.cjs.map +1 -0
- package/dist/cjs/chunk-NFW54MQ7.cjs +17 -0
- package/dist/cjs/chunk-NFW54MQ7.cjs.map +1 -0
- package/dist/cjs/chunk-NK3ADXTX.cjs +44 -0
- package/dist/cjs/chunk-NK3ADXTX.cjs.map +1 -0
- package/dist/cjs/chunk-NNVSYWA3.cjs +62 -0
- package/dist/cjs/chunk-NNVSYWA3.cjs.map +1 -0
- package/dist/cjs/chunk-OCBMFZHQ.cjs +29 -0
- package/dist/cjs/chunk-OCBMFZHQ.cjs.map +1 -0
- package/dist/cjs/chunk-OCXNCC5B.cjs +17 -0
- package/dist/cjs/chunk-OCXNCC5B.cjs.map +1 -0
- package/dist/cjs/chunk-OG2R3NBK.cjs +38 -0
- package/dist/cjs/chunk-OG2R3NBK.cjs.map +1 -0
- package/dist/cjs/chunk-OHVXQ2LX.cjs +53 -0
- package/dist/cjs/chunk-OHVXQ2LX.cjs.map +1 -0
- package/dist/cjs/chunk-ORAYV7WD.cjs +17 -0
- package/dist/cjs/chunk-ORAYV7WD.cjs.map +1 -0
- package/dist/cjs/chunk-OVCUZFLV.cjs +44 -0
- package/dist/cjs/chunk-OVCUZFLV.cjs.map +1 -0
- package/dist/cjs/chunk-OYDNFJAM.cjs +44 -0
- package/dist/cjs/chunk-OYDNFJAM.cjs.map +1 -0
- package/dist/cjs/chunk-P2GCTU6M.cjs +109 -0
- package/dist/cjs/chunk-P2GCTU6M.cjs.map +1 -0
- package/dist/cjs/chunk-P2KW3E6U.cjs +29 -0
- package/dist/cjs/chunk-P2KW3E6U.cjs.map +1 -0
- package/dist/cjs/chunk-P2P5M3T2.cjs +29 -0
- package/dist/cjs/chunk-P2P5M3T2.cjs.map +1 -0
- package/dist/cjs/chunk-P362DRT2.cjs +44 -0
- package/dist/cjs/chunk-P362DRT2.cjs.map +1 -0
- package/dist/cjs/chunk-P3AYWRS7.cjs +18 -0
- package/dist/cjs/chunk-P3AYWRS7.cjs.map +1 -0
- package/dist/cjs/chunk-PAWQF7J7.cjs +17 -0
- package/dist/cjs/chunk-PAWQF7J7.cjs.map +1 -0
- package/dist/cjs/chunk-PF3ER2QU.cjs +17 -0
- package/dist/cjs/chunk-PF3ER2QU.cjs.map +1 -0
- package/dist/cjs/chunk-PG4SO7ML.cjs +29 -0
- package/dist/cjs/chunk-PG4SO7ML.cjs.map +1 -0
- package/dist/cjs/chunk-PN3F26EA.cjs +38 -0
- package/dist/cjs/chunk-PN3F26EA.cjs.map +1 -0
- package/dist/cjs/chunk-PO443XHM.cjs +62 -0
- package/dist/cjs/chunk-PO443XHM.cjs.map +1 -0
- package/dist/cjs/chunk-PQQU77V7.cjs +160 -0
- package/dist/cjs/chunk-PQQU77V7.cjs.map +1 -0
- package/dist/cjs/chunk-PQW35YAY.cjs +89 -0
- package/dist/cjs/chunk-PQW35YAY.cjs.map +1 -0
- package/dist/cjs/chunk-PWM3QPWT.cjs +62 -0
- package/dist/cjs/chunk-PWM3QPWT.cjs.map +1 -0
- package/dist/cjs/chunk-PX2NZ7SE.cjs +29 -0
- package/dist/cjs/chunk-PX2NZ7SE.cjs.map +1 -0
- package/dist/cjs/chunk-QD5ARR2B.cjs +17 -0
- package/dist/cjs/chunk-QD5ARR2B.cjs.map +1 -0
- package/dist/cjs/chunk-QQI3367Y.cjs +29 -0
- package/dist/cjs/chunk-QQI3367Y.cjs.map +1 -0
- package/dist/cjs/chunk-QS4IGZTN.cjs +17 -0
- package/dist/cjs/chunk-QS4IGZTN.cjs.map +1 -0
- package/dist/cjs/chunk-QUWVIY46.cjs +17 -0
- package/dist/cjs/chunk-QUWVIY46.cjs.map +1 -0
- package/dist/cjs/chunk-QYA4XUJT.cjs +18 -0
- package/dist/cjs/chunk-QYA4XUJT.cjs.map +1 -0
- package/dist/cjs/chunk-QYUFEGMJ.cjs +62 -0
- package/dist/cjs/chunk-QYUFEGMJ.cjs.map +1 -0
- package/dist/cjs/chunk-R4UYONDW.cjs +17 -0
- package/dist/cjs/chunk-R4UYONDW.cjs.map +1 -0
- package/dist/cjs/chunk-RGVKM4WY.cjs +62 -0
- package/dist/cjs/chunk-RGVKM4WY.cjs.map +1 -0
- package/dist/cjs/chunk-RHZY3ODR.cjs +361 -0
- package/dist/cjs/chunk-RHZY3ODR.cjs.map +1 -0
- package/dist/cjs/chunk-RN65SUJF.cjs +97 -0
- package/dist/cjs/chunk-RN65SUJF.cjs.map +1 -0
- package/dist/cjs/chunk-RNORLGS6.cjs +45 -0
- package/dist/cjs/chunk-RNORLGS6.cjs.map +1 -0
- package/dist/cjs/chunk-ROQH4P3W.cjs +38 -0
- package/dist/cjs/chunk-ROQH4P3W.cjs.map +1 -0
- package/dist/cjs/chunk-RRUMJQUL.cjs +89 -0
- package/dist/cjs/chunk-RRUMJQUL.cjs.map +1 -0
- package/dist/cjs/chunk-RSW62NMI.cjs +199 -0
- package/dist/cjs/chunk-RSW62NMI.cjs.map +1 -0
- package/dist/cjs/chunk-RUWGV4WR.cjs +17 -0
- package/dist/cjs/chunk-RUWGV4WR.cjs.map +1 -0
- package/dist/cjs/chunk-RXKDAHG2.cjs +44 -0
- package/dist/cjs/chunk-RXKDAHG2.cjs.map +1 -0
- package/dist/cjs/chunk-S6QSKB6P.cjs +16 -0
- package/dist/cjs/chunk-S6QSKB6P.cjs.map +1 -0
- package/dist/cjs/chunk-SFS4SXF6.cjs +53 -0
- package/dist/cjs/chunk-SFS4SXF6.cjs.map +1 -0
- package/dist/cjs/chunk-SMW34VVM.cjs +44 -0
- package/dist/cjs/chunk-SMW34VVM.cjs.map +1 -0
- package/dist/cjs/chunk-ST3FQEPC.cjs +17 -0
- package/dist/cjs/chunk-ST3FQEPC.cjs.map +1 -0
- package/dist/cjs/chunk-SUWPGEHX.cjs +17 -0
- package/dist/cjs/chunk-SUWPGEHX.cjs.map +1 -0
- package/dist/cjs/chunk-TO3PRCSI.cjs +29 -0
- package/dist/cjs/chunk-TO3PRCSI.cjs.map +1 -0
- package/dist/cjs/chunk-TWEE7ZVM.cjs +17 -0
- package/dist/cjs/chunk-TWEE7ZVM.cjs.map +1 -0
- package/dist/cjs/chunk-TXCJLAJF.cjs +38 -0
- package/dist/cjs/chunk-TXCJLAJF.cjs.map +1 -0
- package/dist/cjs/chunk-U6NNAQNQ.cjs +38 -0
- package/dist/cjs/chunk-U6NNAQNQ.cjs.map +1 -0
- package/dist/cjs/chunk-UFRZN76M.cjs +62 -0
- package/dist/cjs/chunk-UFRZN76M.cjs.map +1 -0
- package/dist/cjs/chunk-UHBLYOYU.cjs +74 -0
- package/dist/cjs/chunk-UHBLYOYU.cjs.map +1 -0
- package/dist/cjs/chunk-UHDH333D.cjs +62 -0
- package/dist/cjs/chunk-UHDH333D.cjs.map +1 -0
- package/dist/{esm/chunk-ZXRDGIRP.js → cjs/chunk-UUCZKT5D.cjs} +20 -15
- package/dist/cjs/chunk-UUCZKT5D.cjs.map +1 -0
- package/dist/cjs/chunk-UZJTUZGY.cjs +17 -0
- package/dist/cjs/chunk-UZJTUZGY.cjs.map +1 -0
- package/dist/cjs/chunk-V4RBT5K7.cjs +17 -0
- package/dist/cjs/chunk-V4RBT5K7.cjs.map +1 -0
- package/dist/cjs/chunk-VMO3EK7D.cjs +17 -0
- package/dist/cjs/chunk-VMO3EK7D.cjs.map +1 -0
- package/dist/cjs/chunk-VT73FQL4.cjs +89 -0
- package/dist/cjs/chunk-VT73FQL4.cjs.map +1 -0
- package/dist/cjs/chunk-VXA4ORKK.cjs +74 -0
- package/dist/cjs/chunk-VXA4ORKK.cjs.map +1 -0
- package/dist/cjs/chunk-W7SORD7U.cjs +44 -0
- package/dist/cjs/chunk-W7SORD7U.cjs.map +1 -0
- package/dist/cjs/chunk-WATBESF4.cjs +44 -0
- package/dist/cjs/chunk-WATBESF4.cjs.map +1 -0
- package/dist/cjs/chunk-WDYGGL7T.cjs +74 -0
- package/dist/cjs/chunk-WDYGGL7T.cjs.map +1 -0
- package/dist/cjs/chunk-WJNXA7H5.cjs +17 -0
- package/dist/cjs/chunk-WJNXA7H5.cjs.map +1 -0
- package/dist/cjs/chunk-WK2SDNK6.cjs +29 -0
- package/dist/cjs/chunk-WK2SDNK6.cjs.map +1 -0
- package/dist/cjs/chunk-WQJUJFBG.cjs +89 -0
- package/dist/cjs/chunk-WQJUJFBG.cjs.map +1 -0
- package/dist/cjs/chunk-WQKJT2J5.cjs +17 -0
- package/dist/cjs/chunk-WQKJT2J5.cjs.map +1 -0
- package/dist/cjs/chunk-WUCAGTUK.cjs +17 -0
- package/dist/cjs/chunk-WUCAGTUK.cjs.map +1 -0
- package/dist/cjs/chunk-WY7CK7W5.cjs +74 -0
- package/dist/cjs/chunk-WY7CK7W5.cjs.map +1 -0
- package/dist/cjs/chunk-X3QHGDUT.cjs +74 -0
- package/dist/cjs/chunk-X3QHGDUT.cjs.map +1 -0
- package/dist/cjs/chunk-XDHFS7VI.cjs +44 -0
- package/dist/cjs/chunk-XDHFS7VI.cjs.map +1 -0
- package/dist/cjs/chunk-XTZB7I5O.cjs +365 -0
- package/dist/cjs/chunk-XTZB7I5O.cjs.map +1 -0
- package/dist/cjs/chunk-XTZXXP5H.cjs +17 -0
- package/dist/cjs/chunk-XTZXXP5H.cjs.map +1 -0
- package/dist/cjs/chunk-XWQATYRB.cjs +17 -0
- package/dist/cjs/chunk-XWQATYRB.cjs.map +1 -0
- package/dist/cjs/chunk-Y3E7ELDU.cjs +17 -0
- package/dist/cjs/chunk-Y3E7ELDU.cjs.map +1 -0
- package/dist/cjs/chunk-YEEYYIBK.cjs +17 -0
- package/dist/cjs/chunk-YEEYYIBK.cjs.map +1 -0
- package/dist/cjs/chunk-YM24CPSE.cjs +44 -0
- package/dist/cjs/chunk-YM24CPSE.cjs.map +1 -0
- package/dist/cjs/chunk-YMFMJL47.cjs +137 -0
- package/dist/cjs/chunk-YMFMJL47.cjs.map +1 -0
- package/dist/cjs/chunk-YUTGCYSF.cjs +199 -0
- package/dist/cjs/chunk-YUTGCYSF.cjs.map +1 -0
- package/dist/cjs/chunk-Z2IE2N4Z.cjs +38 -0
- package/dist/cjs/chunk-Z2IE2N4Z.cjs.map +1 -0
- package/dist/cjs/chunk-Z6WB6GE6.cjs +17 -0
- package/dist/cjs/chunk-Z6WB6GE6.cjs.map +1 -0
- package/dist/cjs/chunk-ZEUSN4Q4.cjs +89 -0
- package/dist/cjs/chunk-ZEUSN4Q4.cjs.map +1 -0
- package/dist/cjs/chunk-ZF2XEV4M.cjs +362 -0
- package/dist/cjs/chunk-ZF2XEV4M.cjs.map +1 -0
- package/dist/cjs/chunk-ZRQ2BXVC.cjs +38 -0
- package/dist/cjs/chunk-ZRQ2BXVC.cjs.map +1 -0
- package/dist/cjs/chunk-ZUTXQWDF.cjs +29 -0
- package/dist/cjs/chunk-ZUTXQWDF.cjs.map +1 -0
- package/dist/cjs/container/controllers.cjs +4 -4
- package/dist/cjs/container/index.cjs +25 -22
- package/dist/cjs/container/index.cjs.map +1 -1
- package/dist/cjs/container/services.cjs +18 -15
- package/dist/cjs/container/services.cjs.map +1 -1
- package/dist/cjs/controllers/index.cjs +3 -3
- package/dist/cjs/controllers/index.cjs.map +1 -1
- package/dist/cjs/index.cjs +41 -38
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/modules/a2a/a2a.module.cjs +2 -2
- package/dist/cjs/modules/index.cjs +8 -8
- package/dist/cjs/modules/index.cjs.map +1 -1
- package/dist/cjs/modules/mcp/mcp.module.cjs +2 -2
- package/dist/cjs/routes/a2a.routes.cjs +27 -24
- package/dist/cjs/routes/a2a.routes.cjs.map +1 -1
- package/dist/cjs/routes/api/agent.routes.cjs +25 -22
- package/dist/cjs/routes/api/agent.routes.cjs.map +1 -1
- package/dist/cjs/routes/api/intent.routes.cjs +25 -22
- package/dist/cjs/routes/api/intent.routes.cjs.map +1 -1
- package/dist/cjs/routes/api/model.routes.cjs +25 -22
- package/dist/cjs/routes/api/model.routes.cjs.map +1 -1
- package/dist/cjs/routes/api/threads.routes.cjs +25 -22
- package/dist/cjs/routes/api/threads.routes.cjs.map +1 -1
- package/dist/cjs/routes/api/workflow.routes.cjs +25 -22
- package/dist/cjs/routes/api/workflow.routes.cjs.map +1 -1
- package/dist/cjs/routes/api.routes.cjs +30 -27
- package/dist/cjs/routes/api.routes.cjs.map +1 -1
- package/dist/cjs/routes/index.cjs +34 -31
- package/dist/cjs/routes/index.cjs.map +1 -1
- package/dist/cjs/routes/intent.routes.cjs +25 -22
- package/dist/cjs/routes/intent.routes.cjs.map +1 -1
- package/dist/cjs/routes/query.routes.cjs +25 -22
- package/dist/cjs/routes/query.routes.cjs.map +1 -1
- package/dist/cjs/services/index.cjs +17 -14
- package/dist/cjs/services/index.cjs.map +1 -1
- package/dist/cjs/services/intents/aggregate.service.cjs +3 -4
- package/dist/cjs/services/intents/aggregate.service.cjs.map +1 -1
- package/dist/cjs/services/intents/fulfill.service.cjs +7 -6
- package/dist/cjs/services/intents/fulfill.service.cjs.map +1 -1
- package/dist/cjs/services/intents/multi-trigger.service.cjs +3 -2
- package/dist/cjs/services/intents/multi-trigger.service.cjs.map +1 -1
- package/dist/cjs/services/intents/single-trigger.service.cjs +3 -2
- package/dist/cjs/services/intents/single-trigger.service.cjs.map +1 -1
- package/dist/cjs/services/intents/trigger.service.cjs +6 -4
- package/dist/cjs/services/intents/trigger.service.cjs.map +1 -1
- package/dist/cjs/services/prompts/aggregate.cjs +7 -0
- package/dist/cjs/services/prompts/aggregate.cjs.map +1 -0
- package/dist/cjs/services/prompts/fulfill.cjs +7 -0
- package/dist/cjs/services/prompts/fulfill.cjs.map +1 -0
- package/dist/cjs/services/prompts/generate-title.cjs +7 -0
- package/dist/cjs/services/prompts/generate-title.cjs.map +1 -0
- package/dist/cjs/services/prompts/multi-trigger.cjs +7 -0
- package/dist/cjs/services/prompts/multi-trigger.cjs.map +1 -0
- package/dist/cjs/services/prompts/single-trigger.cjs +7 -0
- package/dist/cjs/services/prompts/single-trigger.cjs.map +1 -0
- package/dist/cjs/services/prompts/tool-select.cjs +7 -0
- package/dist/cjs/services/prompts/tool-select.cjs.map +1 -0
- package/dist/cjs/services/query.service.cjs +3 -3
- package/dist/cjs/services/utils/aggregate.common.cjs +2 -4
- package/dist/cjs/services/utils/aggregate.common.cjs.map +1 -1
- package/dist/cjs/services/utils/query.common.cjs +1 -8
- package/dist/cjs/services/utils/query.common.cjs.map +1 -1
- package/dist/cjs/utils/tableBuffer.cjs +7 -0
- package/dist/cjs/utils/tableBuffer.cjs.map +1 -0
- package/dist/esm/{chunk-7BH6AYP7.js → chunk-22ELL7WG.js} +6 -4
- package/dist/esm/chunk-22ELL7WG.js.map +1 -0
- package/dist/esm/{chunk-5FJU67BO.js → chunk-2RLUCOJF.js} +13 -10
- package/dist/esm/chunk-2RLUCOJF.js.map +1 -0
- package/dist/esm/chunk-3CR3ZB6L.js +60 -0
- package/dist/esm/chunk-3CR3ZB6L.js.map +1 -0
- package/dist/esm/chunk-5Z3SX3AE.js +11 -0
- package/dist/esm/chunk-5Z3SX3AE.js.map +1 -0
- package/dist/esm/{chunk-MXPZHEDH.js → chunk-BQO572DY.js} +6 -6
- package/dist/esm/{chunk-ZSWCICNO.js → chunk-C6GUUAED.js} +26 -4
- package/dist/esm/chunk-C6GUUAED.js.map +1 -0
- package/dist/esm/{chunk-VGL4ZVNA.js → chunk-CRQEBSRD.js} +15 -25
- package/dist/esm/chunk-CRQEBSRD.js.map +1 -0
- package/dist/esm/chunk-DDSAK722.js +92 -0
- package/dist/esm/chunk-DDSAK722.js.map +1 -0
- package/dist/esm/{chunk-SV5CKUNN.js → chunk-FWPJQG4N.js} +3 -3
- package/dist/esm/chunk-FWPJQG4N.js.map +1 -0
- package/dist/esm/{chunk-DBB7B4PV.js → chunk-G4TS67ZV.js} +3 -3
- package/dist/esm/{chunk-MZRZVF5Q.js → chunk-GT74YHJR.js} +2 -2
- package/dist/esm/chunk-HSAGEBXJ.js +16 -0
- package/dist/esm/chunk-HSAGEBXJ.js.map +1 -0
- package/dist/esm/{chunk-XXDILT4B.js → chunk-IQ3BAWVV.js} +2 -2
- package/dist/esm/{chunk-A3CKGK3U.js → chunk-M7YQE7I2.js} +2 -2
- package/dist/esm/{chunk-VOMI5BAO.js → chunk-MJMNQNQL.js} +2 -2
- package/dist/esm/{chunk-CYP6OTDK.js → chunk-NHYC66BI.js} +6 -6
- package/dist/esm/{chunk-D66QTWUY.js → chunk-OCULYA2R.js} +2 -2
- package/dist/esm/{chunk-3IG6HCSA.js → chunk-OV5MNKPH.js} +2 -2
- package/dist/esm/chunk-QMAVALRZ.js +97 -0
- package/dist/esm/chunk-QMAVALRZ.js.map +1 -0
- package/dist/esm/{chunk-SDABEZSA.js → chunk-RDXHEDJT.js} +2 -2
- package/dist/esm/{chunk-ZUVYTTPD.js → chunk-RYEA7EL2.js} +3 -3
- package/dist/esm/chunk-RYEA7EL2.js.map +1 -0
- package/dist/esm/{chunk-LLYDI3LD.js → chunk-TIIWZOBY.js} +2 -2
- package/dist/esm/chunk-WFYXNKCJ.js +20 -0
- package/dist/esm/chunk-WFYXNKCJ.js.map +1 -0
- package/dist/esm/chunk-XQUENGL4.js +29 -0
- package/dist/esm/chunk-XQUENGL4.js.map +1 -0
- package/dist/esm/{chunk-R2R3AMCG.js → chunk-XSDHB2WQ.js} +2 -2
- package/dist/esm/container/index.js +15 -12
- package/dist/esm/container/services.js +14 -11
- package/dist/esm/index.js +25 -22
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/modules/a2a/a2a.module.d.ts +1 -1
- package/dist/esm/modules/a2a/a2a.module.js +1 -1
- package/dist/esm/modules/index.js +7 -7
- package/dist/esm/modules/mcp/mcp.module.d.ts +1 -1
- package/dist/esm/modules/mcp/mcp.module.js +1 -1
- package/dist/esm/modules/memory/base.memory.d.ts +6 -1
- package/dist/esm/routes/a2a.routes.js +16 -13
- package/dist/esm/routes/api/agent.routes.js +16 -13
- package/dist/esm/routes/api/intent.routes.js +16 -13
- package/dist/esm/routes/api/model.routes.js +16 -13
- package/dist/esm/routes/api/threads.routes.js +16 -13
- package/dist/esm/routes/api/workflow.routes.js +16 -13
- package/dist/esm/routes/api.routes.js +21 -18
- package/dist/esm/routes/index.js +23 -20
- package/dist/esm/routes/intent.routes.js +16 -13
- package/dist/esm/routes/query.routes.js +16 -13
- package/dist/esm/services/index.js +15 -12
- package/dist/esm/services/intents/aggregate.service.d.ts +6 -21
- package/dist/esm/services/intents/aggregate.service.js +2 -3
- package/dist/esm/services/intents/fulfill.service.js +5 -4
- package/dist/esm/services/intents/multi-trigger.service.js +2 -1
- package/dist/esm/services/intents/single-trigger.service.js +2 -1
- package/dist/esm/services/intents/trigger.service.js +5 -3
- package/dist/esm/services/prompts/aggregate.d.ts +7 -0
- package/dist/esm/services/prompts/aggregate.js +7 -0
- package/dist/esm/services/prompts/fulfill.d.ts +7 -0
- package/dist/esm/services/prompts/fulfill.js +7 -0
- package/dist/esm/services/prompts/generate-title.d.ts +7 -0
- package/dist/esm/services/prompts/generate-title.js +7 -0
- package/dist/esm/services/prompts/multi-trigger.d.ts +7 -0
- package/dist/esm/services/prompts/multi-trigger.js +7 -0
- package/dist/esm/services/prompts/multi-trigger.js.map +1 -0
- package/dist/esm/services/prompts/single-trigger.d.ts +7 -0
- package/dist/esm/services/prompts/single-trigger.js +7 -0
- package/dist/esm/services/prompts/single-trigger.js.map +1 -0
- package/dist/esm/services/prompts/tool-select.d.ts +7 -0
- package/dist/esm/services/prompts/tool-select.js +7 -0
- package/dist/esm/services/prompts/tool-select.js.map +1 -0
- package/dist/esm/services/query.service.d.ts +1 -0
- package/dist/esm/services/query.service.js +2 -2
- package/package.json +1 -1
- package/dist/esm/chunk-5FJU67BO.js.map +0 -1
- package/dist/esm/chunk-7BH6AYP7.js.map +0 -1
- package/dist/esm/chunk-HEYSMA5B.js +0 -38
- package/dist/esm/chunk-HEYSMA5B.js.map +0 -1
- package/dist/esm/chunk-L447Q33F.js +0 -199
- package/dist/esm/chunk-L447Q33F.js.map +0 -1
- package/dist/esm/chunk-O3MPFL5J.js +0 -47
- package/dist/esm/chunk-O3MPFL5J.js.map +0 -1
- package/dist/esm/chunk-SV5CKUNN.js.map +0 -1
- package/dist/esm/chunk-VGL4ZVNA.js.map +0 -1
- package/dist/esm/chunk-ZSWCICNO.js.map +0 -1
- package/dist/esm/chunk-ZUVYTTPD.js.map +0 -1
- package/dist/esm/chunk-ZXRDGIRP.js.map +0 -1
- package/dist/esm/services/utils/aggregate.common.d.ts +0 -10
- package/dist/esm/services/utils/aggregate.common.js +0 -9
- package/dist/esm/services/utils/fulfill.common.d.ts +0 -6
- package/dist/esm/services/utils/fulfill.common.js +0 -7
- package/dist/esm/services/utils/query.common.d.ts +0 -9
- package/dist/esm/services/utils/query.common.js +0 -8
- /package/dist/esm/{chunk-MXPZHEDH.js.map → chunk-BQO572DY.js.map} +0 -0
- /package/dist/esm/{chunk-DBB7B4PV.js.map → chunk-G4TS67ZV.js.map} +0 -0
- /package/dist/esm/{chunk-MZRZVF5Q.js.map → chunk-GT74YHJR.js.map} +0 -0
- /package/dist/esm/{chunk-XXDILT4B.js.map → chunk-IQ3BAWVV.js.map} +0 -0
- /package/dist/esm/{chunk-A3CKGK3U.js.map → chunk-M7YQE7I2.js.map} +0 -0
- /package/dist/esm/{chunk-VOMI5BAO.js.map → chunk-MJMNQNQL.js.map} +0 -0
- /package/dist/esm/{chunk-CYP6OTDK.js.map → chunk-NHYC66BI.js.map} +0 -0
- /package/dist/esm/{chunk-D66QTWUY.js.map → chunk-OCULYA2R.js.map} +0 -0
- /package/dist/esm/{chunk-3IG6HCSA.js.map → chunk-OV5MNKPH.js.map} +0 -0
- /package/dist/esm/{chunk-SDABEZSA.js.map → chunk-RDXHEDJT.js.map} +0 -0
- /package/dist/esm/{chunk-LLYDI3LD.js.map → chunk-TIIWZOBY.js.map} +0 -0
- /package/dist/esm/{chunk-R2R3AMCG.js.map → chunk-XSDHB2WQ.js.map} +0 -0
- /package/dist/esm/services/{utils/aggregate.common.js.map → prompts/aggregate.js.map} +0 -0
- /package/dist/esm/services/{utils/fulfill.common.js.map → prompts/fulfill.js.map} +0 -0
- /package/dist/esm/services/{utils/query.common.js.map → prompts/generate-title.js.map} +0 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunk3OLHAXDUcjs = require('../../chunk-3OLHAXDU.cjs');
|
|
4
|
+
require('../../chunk-3FSMQH6T.cjs');
|
|
4
5
|
require('../../chunk-2CQQ34ED.cjs');
|
|
5
6
|
|
|
6
7
|
|
|
7
|
-
exports.MultiIntentTriggerService =
|
|
8
|
+
exports.MultiIntentTriggerService = _chunk3OLHAXDUcjs.MultiIntentTriggerService;
|
|
8
9
|
//# sourceMappingURL=multi-trigger.service.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/intents/multi-trigger.service.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,4DAAiC;AACjC,oCAAiC;AACjC;AACE;AACF,gFAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/intents/multi-trigger.service.cjs"}
|
|
1
|
+
{"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/intents/multi-trigger.service.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,4DAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC;AACE;AACF,gFAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/intents/multi-trigger.service.cjs"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkCX3MFVU4cjs = require('../../chunk-CX3MFVU4.cjs');
|
|
4
|
+
require('../../chunk-TO3PRCSI.cjs');
|
|
4
5
|
require('../../chunk-2CQQ34ED.cjs');
|
|
5
6
|
|
|
6
7
|
|
|
7
|
-
exports.SingleIntentTriggerService =
|
|
8
|
+
exports.SingleIntentTriggerService = _chunkCX3MFVU4cjs.SingleIntentTriggerService;
|
|
8
9
|
//# sourceMappingURL=single-trigger.service.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/intents/single-trigger.service.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,4DAAiC;AACjC,oCAAiC;AACjC;AACE;AACF,kFAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/intents/single-trigger.service.cjs"}
|
|
1
|
+
{"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/intents/single-trigger.service.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,4DAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC;AACE;AACF,kFAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/intents/single-trigger.service.cjs"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../../chunk-
|
|
5
|
-
require('../../chunk-
|
|
3
|
+
var _chunkRNORLGS6cjs = require('../../chunk-RNORLGS6.cjs');
|
|
4
|
+
require('../../chunk-3OLHAXDU.cjs');
|
|
5
|
+
require('../../chunk-3FSMQH6T.cjs');
|
|
6
|
+
require('../../chunk-CX3MFVU4.cjs');
|
|
7
|
+
require('../../chunk-TO3PRCSI.cjs');
|
|
6
8
|
require('../../chunk-2CQQ34ED.cjs');
|
|
7
9
|
|
|
8
10
|
|
|
9
|
-
exports.IntentTriggerService =
|
|
11
|
+
exports.IntentTriggerService = _chunkRNORLGS6cjs.IntentTriggerService;
|
|
10
12
|
//# sourceMappingURL=trigger.service.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/intents/trigger.service.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,4DAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC;AACE;AACF,sEAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/intents/trigger.service.cjs"}
|
|
1
|
+
{"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/intents/trigger.service.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,4DAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC;AACE;AACF,sEAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/intents/trigger.service.cjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/prompts/aggregate.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,4DAAiC;AACjC;AACE;AACF,sDAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/prompts/aggregate.cjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/prompts/fulfill.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,4DAAiC;AACjC;AACE;AACF,oDAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/prompts/fulfill.cjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/prompts/generate-title.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,4DAAiC;AACjC;AACE;AACF,2DAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/prompts/generate-title.cjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/prompts/multi-trigger.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,4DAAiC;AACjC;AACE;AACF,0DAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/prompts/multi-trigger.cjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/prompts/single-trigger.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,4DAAiC;AACjC;AACE;AACF,2DAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/prompts/single-trigger.cjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/prompts/tool-select.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,4DAAiC;AACjC;AACE;AACF,wDAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/prompts/tool-select.cjs"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../chunk-
|
|
3
|
+
var _chunkLDLF7MAEcjs = require('../chunk-LDLF7MAE.cjs');
|
|
4
|
+
require('../chunk-S6QSKB6P.cjs');
|
|
5
5
|
require('../chunk-OERUQFT7.cjs');
|
|
6
6
|
require('../chunk-YCUKZPKY.cjs');
|
|
7
7
|
require('../chunk-2CQQ34ED.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
exports.QueryService =
|
|
10
|
+
exports.QueryService = _chunkLDLF7MAEcjs.QueryService;
|
|
11
11
|
//# sourceMappingURL=query.service.cjs.map
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
+
var _chunkHLTFUIINcjs = require('../../chunk-HLTFUIIN.cjs');
|
|
3
4
|
|
|
4
|
-
var _chunkEQWAVDJYcjs = require('../../chunk-EQWAVDJY.cjs');
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
exports.AGGREGATE_DECISION_SYSTEM_PROMPT = _chunkEQWAVDJYcjs.AGGREGATE_DECISION_SYSTEM_PROMPT; exports.AGGREGATE_GENERATION_SYSTEM_PROMPT = _chunkEQWAVDJYcjs.AGGREGATE_GENERATION_SYSTEM_PROMPT;
|
|
6
|
+
exports.AGGREGATE_GENERATION_SYSTEM_PROMPT = _chunkHLTFUIINcjs.AGGREGATE_GENERATION_SYSTEM_PROMPT;
|
|
9
7
|
//# sourceMappingURL=aggregate.common.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/utils/aggregate.common.cjs"],"names":[],"mappings":"AAAA;AACE;
|
|
1
|
+
{"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/utils/aggregate.common.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,4DAAiC;AACjC;AACE;AACF,kGAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/utils/aggregate.common.cjs"}
|
|
@@ -1,8 +1 @@
|
|
|
1
|
-
"use strict"
|
|
2
|
-
|
|
3
|
-
var _chunkQK26HLOIcjs = require('../../chunk-QK26HLOI.cjs');
|
|
4
|
-
require('../../chunk-2CQQ34ED.cjs');
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
exports.generateTitle = _chunkQK26HLOIcjs.generateTitle;
|
|
8
|
-
//# sourceMappingURL=query.common.cjs.map
|
|
1
|
+
"use strict";//# sourceMappingURL=query.common.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/utils/query.common.cjs"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/utils/query.common.cjs"],"names":[],"mappings":"AAAA","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/services/utils/query.common.cjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/utils/tableBuffer.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,yDAA8B;AAC9B;AACE;AACF,gEAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/utils/tableBuffer.cjs"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
// src/services/
|
|
2
|
-
async function
|
|
1
|
+
// src/services/prompts/fulfill.ts
|
|
2
|
+
async function fulfillPrompt(memoryModule, intent) {
|
|
3
|
+
const agentMemory = memoryModule.getAgentMemory();
|
|
3
4
|
const agentPrompt = agentMemory ? await agentMemory.getAgentPrompt() : "";
|
|
4
5
|
return `
|
|
5
6
|
Today is ${(/* @__PURE__ */ new Date()).toLocaleDateString()}.
|
|
@@ -44,8 +45,9 @@ ${agentPrompt}
|
|
|
44
45
|
${intent?.prompt || ""}
|
|
45
46
|
`.trim();
|
|
46
47
|
}
|
|
48
|
+
var fulfill_default = fulfillPrompt;
|
|
47
49
|
|
|
48
50
|
export {
|
|
49
|
-
|
|
51
|
+
fulfill_default
|
|
50
52
|
};
|
|
51
|
-
//# sourceMappingURL=chunk-
|
|
53
|
+
//# sourceMappingURL=chunk-22ELL7WG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/services/prompts/fulfill.ts"],"sourcesContent":["import type { MemoryModule } from \"@/modules\";\nimport type { Intent } from \"@/types/memory\";\n\nasync function fulfillPrompt(memoryModule: MemoryModule, intent?: Intent) {\n\tconst agentMemory = memoryModule.getAgentMemory();\n\tconst agentPrompt = agentMemory ? await agentMemory.getAgentPrompt() : \"\";\n\n\treturn `\nToday is ${new Date().toLocaleDateString()}.\nYou are a highly sophisticated automated agent that can answer user queries by utilizing various tools and resources.\n\nThere is a selection of tools that let you perform actions or retrieve helpful context to answer the user's question.\nYou can call tools repeatedly to take actions or gather as much context as needed until you have completed the task fully.\n\nDon't give up unless you are sure the request cannot be fulfilled with the tools you have.\nIt's YOUR RESPONSIBILITY to make sure that you have done all you can to collect necessary context.\n\nIf you are not sure about content or context pertaining to the user's request, use your tools to read data and gather the relevant information: do NOT guess or make up an answer.\nBe THOROUGH when gathering information. Make sure you have the FULL picture before replying. Use additional tool calls or clarifying questions as needed.\n\nDon't try to answer the user's question directly.\nFirst break down the user's request into smaller concepts and think about the kinds of tools and queries you need to grasp each concept.\n\nThere are two <tool_type> for tools: MCP_Tool and A2A_Tool.\nThe tool type can be identified by the presence of \"[Bot Called <tool_type> with args <tool_args>]\" at the beginning of the tool result message.\nAfter executing a tool, a final response message must be written.\n\nRefer to the usage instructions below for each <tool_type>.\n\n<MCP_Tool>\n Use MCP tools through tools.\n MCP tool names are structured as follows:\n {MCP_NAME}_{TOOL_NAME}\n For example, tool names for the \"notionApi\" mcp would be:\n notionApi_API-post-search\n\n Separate rules can be specified under <{MCP_NAME}> for each MCP_NAME.\n</MCP_Tool>\n\n<A2A_Tool>\n A2A_Tool is a tool that sends queries to Agents with different information than mine and receives answers. The Agent that provided the answer must be clearly indicated.\n Results from A2A_Tool are text generated after thorough consideration by the requested Agent, and are complete outputs that cannot be further developed.\n There is no need to supplement the content with the same question or use new tools.\n</A2A_Tool>\n\n${agentPrompt}\n\n${intent?.prompt || \"\"}\n\t`.trim();\n}\n\nexport default fulfillPrompt;\n"],"mappings":";AAGA,eAAe,cAAc,cAA4B,QAAiB;AACzE,QAAM,cAAc,aAAa,eAAe;AAChD,QAAM,cAAc,cAAc,MAAM,YAAY,eAAe,IAAI;AAEvE,SAAO;AAAA,YACG,oBAAI,KAAK,GAAE,mBAAmB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAqCxC,WAAW;AAAA;AAAA,EAEX,QAAQ,UAAU,EAAE;AAAA,GACnB,KAAK;AACR;AAEA,IAAO,kBAAQ;","names":[]}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-
|
|
2
|
+
tool_select_default
|
|
3
|
+
} from "./chunk-5Z3SX3AE.js";
|
|
4
4
|
import {
|
|
5
5
|
AggregateService
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-QMAVALRZ.js";
|
|
7
|
+
import {
|
|
8
|
+
fulfill_default
|
|
9
|
+
} from "./chunk-22ELL7WG.js";
|
|
7
10
|
import {
|
|
8
11
|
getManifest
|
|
9
12
|
} from "./chunk-2J2TQRP4.js";
|
|
@@ -26,7 +29,7 @@ var IntentFulfillService = class {
|
|
|
26
29
|
this.a2aModule = a2aModule;
|
|
27
30
|
this.mcpModule = mcpModule;
|
|
28
31
|
this.onIntentFallback = onIntentFallback;
|
|
29
|
-
this.aggregateService = new AggregateService(modelModule);
|
|
32
|
+
this.aggregateService = new AggregateService(modelModule, memoryModule);
|
|
30
33
|
}
|
|
31
34
|
async addToThreadMessages(thread, params) {
|
|
32
35
|
try {
|
|
@@ -62,22 +65,22 @@ var IntentFulfillService = class {
|
|
|
62
65
|
* @returns AsyncGenerator yielding StreamEvent objects
|
|
63
66
|
*/
|
|
64
67
|
async *intentFulfilling(query, thread, intent) {
|
|
65
|
-
const
|
|
66
|
-
const fulfillPrompt = await createFulfillPrompt(agentMemory, intent);
|
|
68
|
+
const prompt = await fulfill_default(this.memoryModule, intent);
|
|
67
69
|
const modelInstance = this.modelModule.getModel();
|
|
68
70
|
const modelOptions = this.modelModule.getModelOptions();
|
|
69
71
|
const messages = modelInstance.generateMessages({
|
|
70
72
|
query,
|
|
71
73
|
thread,
|
|
72
|
-
systemPrompt:
|
|
74
|
+
systemPrompt: prompt.trim()
|
|
73
75
|
});
|
|
74
76
|
loggers.intent.debug("Intent fulfillment start", {
|
|
75
77
|
threadId: thread.threadId,
|
|
76
78
|
messages
|
|
77
79
|
});
|
|
78
80
|
const tools = [];
|
|
79
|
-
|
|
80
|
-
this.
|
|
81
|
+
const toolPrompt = await tool_select_default(this.memoryModule);
|
|
82
|
+
this.mcpModule && tools.push(...this.mcpModule.getTools(toolPrompt));
|
|
83
|
+
this.a2aModule && tools.push(...await this.a2aModule.getTools(toolPrompt));
|
|
81
84
|
const processList = [];
|
|
82
85
|
while (true) {
|
|
83
86
|
const functions = modelInstance.convertToolsToFunctions(tools);
|
|
@@ -359,4 +362,4 @@ var IntentFulfillService = class {
|
|
|
359
362
|
export {
|
|
360
363
|
IntentFulfillService
|
|
361
364
|
};
|
|
362
|
-
//# sourceMappingURL=chunk-
|
|
365
|
+
//# sourceMappingURL=chunk-2RLUCOJF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/services/intents/fulfill.service.ts"],"sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { getManifest } from \"@/config/manifest\";\nimport type {\n\tA2AModule,\n\tMCPModule,\n\tMemoryModule,\n\tModelModule,\n} from \"@/modules\";\nimport type { OnIntentFallback } from \"@/types/agent\";\nimport { CONNECTOR_PROTOCOL_TYPE, type ConnectorTool } from \"@/types/connector\";\nimport {\n\ttype FulfillmentResult,\n\ttype Intent,\n\ttype MessageObject,\n\tMessageRole,\n\ttype ThreadObject,\n\ttype TriggeredIntent,\n} from \"@/types/memory\";\nimport type { StreamEvent } from \"@/types/stream\";\nimport { loggers } from \"@/utils/logger\";\nimport fulfillPrompt from \"../prompts/fulfill\";\nimport toolSelectPrompt from \"../prompts/tool-select\";\nimport { AggregateService } from \"./aggregate.service\";\n\nexport class IntentFulfillService {\n\tprivate modelModule: ModelModule;\n\tprivate memoryModule: MemoryModule;\n\tprivate a2aModule?: A2AModule;\n\tprivate mcpModule?: MCPModule;\n\tprivate onIntentFallback?: OnIntentFallback;\n\tprivate aggregateService: AggregateService;\n\n\tconstructor(\n\t\tmodelModule: ModelModule,\n\t\tmemoryModule: MemoryModule,\n\t\ta2aModule?: A2AModule,\n\t\tmcpModule?: MCPModule,\n\t\tonIntentFallback?: OnIntentFallback,\n\t) {\n\t\tthis.modelModule = modelModule;\n\t\tthis.memoryModule = memoryModule;\n\t\tthis.a2aModule = a2aModule;\n\t\tthis.mcpModule = mcpModule;\n\t\tthis.onIntentFallback = onIntentFallback;\n\t\tthis.aggregateService = new AggregateService(modelModule, memoryModule);\n\t}\n\n\tprivate async addToThreadMessages(\n\t\tthread: ThreadObject,\n\t\tparams: {\n\t\t\trole: MessageRole;\n\t\t\tcontent: string;\n\t\t\tmetadata?: Record<string, unknown>;\n\t\t},\n\t) {\n\t\ttry {\n\t\t\tconst threadMemory = this.memoryModule.getThreadMemory();\n\t\t\tconst { userId, threadId } = thread;\n\t\t\tconst newMessage: MessageObject = {\n\t\t\t\tmessageId: randomUUID(),\n\t\t\t\trole: params.role,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t\tcontent: { type: \"text\", parts: [params.content] },\n\t\t\t\tmetadata: params.metadata,\n\t\t\t};\n\t\t\tthread.messages.push(newMessage);\n\t\t\tawait threadMemory?.addMessagesToThread(userId, threadId, [newMessage]);\n\t\t} catch (error) {\n\t\t\tloggers.intentStream.error(\"Error adding message to thread\", error);\n\t\t}\n\t}\n\n\t/**\n\t * Fulfills the detected intent by generating a streaming response.\n\t *\n\t * Manages the complete inference loop including:\n\t * - Loading prompts and conversation history\n\t * - Collecting available tools from modules\n\t * - Executing model inference with tool support\n\t * - Processing tool calls iteratively until completion\n\t * - Streaming results as Server-Sent Events\n\t *\n\t * @param query - The user's input query\n\t * @param threadId - Thread identifier for context\n\t * @param thread - Previous conversation history\n\t * @param intent - Optional detected intent with custom prompt\n\t * @returns AsyncGenerator yielding StreamEvent objects\n\t */\n\tprivate async *intentFulfilling(\n\t\tquery: string,\n\t\tthread: ThreadObject,\n\t\tintent?: Intent,\n\t): AsyncGenerator<StreamEvent> {\n\t\tconst prompt = await fulfillPrompt(this.memoryModule, intent);\n\n\t\tconst modelInstance = this.modelModule.getModel();\n\t\tconst modelOptions = this.modelModule.getModelOptions();\n\t\tconst messages = modelInstance.generateMessages({\n\t\t\tquery,\n\t\t\tthread,\n\t\t\tsystemPrompt: prompt.trim(),\n\t\t});\n\n\t\tloggers.intent.debug(\"Intent fulfillment start\", {\n\t\t\tthreadId: thread.threadId,\n\t\t\tmessages,\n\t\t});\n\n\t\tconst tools: ConnectorTool[] = [];\n\t\tconst toolPrompt = await toolSelectPrompt(this.memoryModule);\n\t\tthis.mcpModule && tools.push(...this.mcpModule.getTools(toolPrompt));\n\t\tthis.a2aModule &&\n\t\t\ttools.push(...(await this.a2aModule.getTools(toolPrompt)));\n\n\t\tconst processList: string[] = [];\n\n\t\twhile (true) {\n\t\t\tconst functions = modelInstance.convertToolsToFunctions(tools);\n\t\t\tconst responseStream = await modelInstance.fetchStreamWithContextMessage(\n\t\t\t\tmessages,\n\t\t\t\tfunctions,\n\t\t\t\tmodelOptions,\n\t\t\t);\n\n\t\t\tconst assembledToolCalls: {\n\t\t\t\tid: string;\n\t\t\t\ttype: \"function\";\n\t\t\t\tfunction: { name: string; arguments: string };\n\t\t\t}[] = [];\n\n\t\t\tfor await (const chunk of responseStream) {\n\t\t\t\tconst delta = chunk.delta;\n\t\t\t\tif (delta?.tool_calls) {\n\t\t\t\t\tfor (const { index, id, function: func } of delta.tool_calls) {\n\t\t\t\t\t\tassembledToolCalls[index] ??= {\n\t\t\t\t\t\t\tid: \"\",\n\t\t\t\t\t\t\ttype: \"function\",\n\t\t\t\t\t\t\tfunction: { name: \"\", arguments: \"\" },\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (id) assembledToolCalls[index].id = id;\n\t\t\t\t\t\tif (func?.name) assembledToolCalls[index].function.name = func.name;\n\t\t\t\t\t\tif (func?.arguments)\n\t\t\t\t\t\t\tassembledToolCalls[index].function.arguments += func.arguments;\n\t\t\t\t\t}\n\t\t\t\t} else if (chunk.delta?.content) {\n\t\t\t\t\tyield {\n\t\t\t\t\t\tevent: \"text_chunk\",\n\t\t\t\t\t\tdata: { delta: chunk.delta.content },\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tloggers.intentStream.debug(\"assembledToolCalls\", {\n\t\t\t\tthreadId: thread.threadId,\n\t\t\t\tassembledToolCalls,\n\t\t\t});\n\n\t\t\tif (assembledToolCalls.length > 0) {\n\t\t\t\tfor (const toolCall of assembledToolCalls) {\n\t\t\t\t\tconst toolName = toolCall.function.name;\n\t\t\t\t\tlet selectedTool: ConnectorTool | undefined;\n\t\t\t\t\tfor (const [index, toolTmp] of tools.entries()) {\n\t\t\t\t\t\tif (toolTmp.toolName === toolName) {\n\t\t\t\t\t\t\tif (toolTmp.protocol === CONNECTOR_PROTOCOL_TYPE.A2A) {\n\t\t\t\t\t\t\t\t// remove used tool to prevent infinite loop\n\t\t\t\t\t\t\t\tselectedTool = tools.splice(index, 1)[0];\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tselectedTool = toolTmp;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!selectedTool) {\n\t\t\t\t\t\t// it cannot be happened...\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst toolArgs = JSON.parse(toolCall.function.arguments);\n\t\t\t\t\tconst thinkData = {\n\t\t\t\t\t\ttitle: `[${getManifest().name}] ${selectedTool.protocol} 실행: ${toolName}`,\n\t\t\t\t\t\tdescription: `${toolArgs.thinking_text || \"\"}`,\n\t\t\t\t\t};\n\t\t\t\t\tyield {\n\t\t\t\t\t\tevent: \"thinking_process\",\n\t\t\t\t\t\tdata: thinkData,\n\t\t\t\t\t};\n\n\t\t\t\t\tlet toolResult = \"\";\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.mcpModule &&\n\t\t\t\t\t\tselectedTool.protocol === CONNECTOR_PROTOCOL_TYPE.MCP\n\t\t\t\t\t) {\n\t\t\t\t\t\tloggers.intent.info(\"MCP tool call\", { toolName, toolArgs });\n\t\t\t\t\t\ttoolResult = await this.mcpModule.useTool(selectedTool, toolArgs);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\tthis.a2aModule &&\n\t\t\t\t\t\tselectedTool.protocol === CONNECTOR_PROTOCOL_TYPE.A2A\n\t\t\t\t\t) {\n\t\t\t\t\t\tloggers.intent.info(\"A2A tool call\", { toolName });\n\t\t\t\t\t\tconst a2aStream = this.a2aModule.useTool(\n\t\t\t\t\t\t\tselectedTool,\n\t\t\t\t\t\t\tquery,\n\t\t\t\t\t\t\tthread.threadId,\n\t\t\t\t\t\t);\n\t\t\t\t\t\t// yield intermediate events and get final result\n\t\t\t\t\t\tlet result = await a2aStream.next();\n\t\t\t\t\t\twhile (!result.done) {\n\t\t\t\t\t\t\tif (result.value.event === \"thinking_process\") {\n\t\t\t\t\t\t\t\tyield result.value;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tresult = await a2aStream.next();\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttoolResult = result.value;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Unrecognized tool type. It cannot be happened...\n\t\t\t\t\t\tloggers.intent.warn(\n\t\t\t\t\t\t\t`Unrecognized tool type: ${selectedTool.protocol}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tloggers.intent.debug(\"Tool Result\", { toolResult });\n\n\t\t\t\t\tprocessList.push(toolResult);\n\t\t\t\t\tmodelInstance.appendMessages(messages, toolResult);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tloggers.intent.debug(\"Intent fulfillment completed\", {\n\t\t\tthreadId: thread.threadId,\n\t\t\ttoolCallsExecuted: processList.length,\n\t\t\tintentName: intent?.name,\n\t\t});\n\t}\n\n\t/**\n\t * Returns the appropriate stream for a triggered intent.\n\t * Uses fallback handler if no intent matched and fallback is configured.\n\t */\n\tprivate getIntentStream(\n\t\ttriggeredIntent: TriggeredIntent,\n\t\tthread: ThreadObject,\n\t): AsyncGenerator<StreamEvent> | undefined {\n\t\tconst { subquery = \"\", intent } = triggeredIntent;\n\n\t\tif (!intent && this.onIntentFallback) {\n\t\t\tloggers.intent.info(\"No intent matched, calling fallback handler\");\n\t\t\tconst fallbackStream = this.onIntentFallback({\n\t\t\t\ttriggeredIntent,\n\t\t\t\tthread,\n\t\t\t});\n\t\t\tif (fallbackStream !== undefined) {\n\t\t\t\treturn fallbackStream;\n\t\t\t}\n\t\t}\n\n\t\treturn this.intentFulfilling(subquery, thread, intent);\n\t}\n\n\t/**\n\t * Processes all triggered intents and generates a unified response.\n\t *\n\t * Workflow:\n\t * 1. Process each intent sequentially, collecting results\n\t * 2. Yield thinking_process events for progress visibility\n\t * 3. Use AggregateService to unify results if needsAggregation is true\n\t * 4. Stream the final (possibly aggregated) response\n\t *\n\t * @param intents - Array of triggered intents to process\n\t * @param thread - The thread history\n\t * @param originalQuery - The user's original query (for aggregate context)\n\t * @param needsAggregation - Whether the results need to be aggregated\n\t * @returns AsyncGenerator yielding StreamEvent objects\n\t */\n\tpublic async *intentFulfill(\n\t\tintents: Array<TriggeredIntent>,\n\t\tthread: ThreadObject,\n\t\toriginalQuery: string,\n\t\tneedsAggregation: boolean,\n\t): AsyncGenerator<StreamEvent> {\n\t\tconst streamStartTime = Date.now();\n\t\tloggers.intentStream.info(\"Stream session started\", {\n\t\t\tthreadId: thread.threadId,\n\t\t\tintentCount: intents.length,\n\t\t\tneedsAggregation,\n\t\t\tstartTime: new Date(streamStartTime).toISOString(),\n\t\t});\n\n\t\tlet finalResponseText = \"\";\n\n\t\tif (intents.length <= 1) {\n\t\t\t// Single intent: stream response directly\n\t\t\tconst triggeredIntent = intents[0];\n\t\t\tif (!triggeredIntent) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { subquery = \"\", intent, actionPlan } = triggeredIntent;\n\t\t\tloggers.intent.info(\n\t\t\t\t`Process single intent: ${subquery}, ${intent?.name}`,\n\t\t\t);\n\t\t\tloggers.intent.info(`Action plan: ${actionPlan}`);\n\n\t\t\t// Yield thinking_process for progress visibility\n\t\t\tyield {\n\t\t\t\tevent: \"thinking_process\",\n\t\t\t\tdata: {\n\t\t\t\t\ttitle: `[${getManifest().name}] ${subquery}`,\n\t\t\t\t\tdescription: actionPlan || \"\",\n\t\t\t\t},\n\t\t\t};\n\n\t\t\t// Get the stream for this intent\n\t\t\tconst stream = this.getIntentStream(triggeredIntent, thread);\n\t\t\tif (!stream) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Stream response directly\n\t\t\tfor await (const event of stream) {\n\t\t\t\tif (event.event === \"text_chunk\" && event.data.delta) {\n\t\t\t\t\tfinalResponseText += event.data.delta;\n\t\t\t\t}\n\t\t\t\tyield event;\n\t\t\t}\n\t\t} else if (!needsAggregation) {\n\t\t\t// Multiple intents but no aggregation needed: collect intermediate results, stream only last\n\t\t\tfor (let i = 0; i < intents.length; i++) {\n\t\t\t\tconst triggeredIntent = intents[i];\n\t\t\t\tconst { subquery = \"\", intent, actionPlan } = triggeredIntent;\n\t\t\t\tloggers.intent.info(`Process query: ${subquery}, ${intent?.name}`);\n\t\t\t\tloggers.intent.info(`Action plan: ${actionPlan}`);\n\n\t\t\t\tconst isLastIntent = i === intents.length - 1;\n\n\t\t\t\t// Yield thinking_process for progress visibility\n\t\t\t\tyield {\n\t\t\t\t\tevent: \"thinking_process\",\n\t\t\t\t\tdata: {\n\t\t\t\t\t\ttitle: `[${getManifest().name}] ${subquery}`,\n\t\t\t\t\t\tdescription: actionPlan || \"\",\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\t// Get the stream for this intent\n\t\t\t\tconst stream = this.getIntentStream(triggeredIntent, thread);\n\t\t\t\tif (!stream) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (isLastIntent) {\n\t\t\t\t\t// Stream last intent response directly\n\t\t\t\t\tfor await (const event of stream) {\n\t\t\t\t\t\tif (event.event === \"text_chunk\" && event.data.delta) {\n\t\t\t\t\t\t\tfinalResponseText += event.data.delta;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tyield event;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Collect intermediate results without streaming text_chunk\n\t\t\t\t\tlet responseText = \"\";\n\t\t\t\t\tfor await (const event of stream) {\n\t\t\t\t\t\tif (event.event === \"text_chunk\" && event.data.delta) {\n\t\t\t\t\t\t\tresponseText += event.data.delta;\n\t\t\t\t\t\t} else if (event.event === \"thinking_process\") {\n\t\t\t\t\t\t\t// Tool execution thinking_process events are yielded immediately\n\t\t\t\t\t\t\tyield event;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Add intermediate result to thread context for next intent\n\t\t\t\t\tthread.messages.push({\n\t\t\t\t\t\tmessageId: randomUUID(),\n\t\t\t\t\t\trole: MessageRole.MODEL,\n\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t\tcontent: { type: \"text\", parts: [responseText] },\n\t\t\t\t\t\tmetadata: { isThinking: true },\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// Multi-intent mode with aggregation: collect all results then aggregate\n\t\t\tconst fulfillmentResults: FulfillmentResult[] = [];\n\n\t\t\tfor (let i = 0; i < intents.length; i++) {\n\t\t\t\tconst triggeredIntent = intents[i];\n\t\t\t\tconst { subquery = \"\", intent, actionPlan } = triggeredIntent;\n\t\t\t\tloggers.intent.info(`Process query: ${subquery}, ${intent?.name}`);\n\t\t\t\tloggers.intent.info(`Action plan: ${actionPlan}`);\n\n\t\t\t\t// Add previous result to thread context for inference (not stored in memory)\n\t\t\t\tif (fulfillmentResults.length > 0) {\n\t\t\t\t\tconst lastResult = fulfillmentResults[fulfillmentResults.length - 1];\n\t\t\t\t\tthread.messages.push({\n\t\t\t\t\t\tmessageId: randomUUID(),\n\t\t\t\t\t\trole: MessageRole.MODEL,\n\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t\tcontent: { type: \"text\", parts: [lastResult.response] },\n\t\t\t\t\t\tmetadata: { isThinking: true },\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Yield thinking_process for progress visibility\n\t\t\t\tyield {\n\t\t\t\t\tevent: \"thinking_process\",\n\t\t\t\t\tdata: {\n\t\t\t\t\t\ttitle: `[${getManifest().name}] ${subquery}`,\n\t\t\t\t\t\tdescription: actionPlan || \"\",\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\t// Get the stream for this intent\n\t\t\t\tconst stream = this.getIntentStream(triggeredIntent, thread);\n\t\t\t\tif (!stream) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Collect response text (don't yield text_chunk yet)\n\t\t\t\tlet responseText = \"\";\n\t\t\t\tfor await (const event of stream) {\n\t\t\t\t\tif (event.event === \"text_chunk\" && event.data.delta) {\n\t\t\t\t\t\tresponseText += event.data.delta;\n\t\t\t\t\t} else if (event.event === \"thinking_process\") {\n\t\t\t\t\t\t// Tool execution thinking_process events are yielded immediately\n\t\t\t\t\t\tyield event;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfulfillmentResults.push({\n\t\t\t\t\tsubquery,\n\t\t\t\t\tintent,\n\t\t\t\t\tactionPlan,\n\t\t\t\t\tresponse: responseText,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Aggregate step: generate unified response\n\t\t\tconst aggregateStream = this.aggregateService.aggregate(\n\t\t\t\toriginalQuery,\n\t\t\t\tfulfillmentResults,\n\t\t\t);\n\n\t\t\tfor await (const event of aggregateStream) {\n\t\t\t\tif (event.event === \"text_chunk\" && event.data.delta) {\n\t\t\t\t\tfinalResponseText += event.data.delta;\n\t\t\t\t}\n\t\t\t\tyield event;\n\t\t\t}\n\t\t}\n\n\t\t// Save final response to memory\n\t\tawait this.addToThreadMessages(thread, {\n\t\t\trole: MessageRole.MODEL,\n\t\t\tcontent: finalResponseText,\n\t\t});\n\n\t\tconst streamEndTime = Date.now();\n\t\tconst streamDuration = streamEndTime - streamStartTime;\n\n\t\tloggers.intentStream.info(\"Stream session completed\", {\n\t\t\tthreadId: thread.threadId,\n\t\t\tduration: `${streamDuration}ms`,\n\t\t\tendTime: new Date(streamEndTime).toISOString(),\n\t\t});\n\t}\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// src/services/prompts/multi-trigger.ts
|
|
2
|
+
async function multiTriggerPrompt(memoryModule, intentList) {
|
|
3
|
+
const multiTriggerPrompt2 = await memoryModule?.getAgentMemory()?.getMultiTriggerPrompt?.() || `Instructions:
|
|
4
|
+
1. **First, review the available intent list** to understand what intents are available and what each intent can handle
|
|
5
|
+
2. **Identify which intents from the list are relevant** to the user's question
|
|
6
|
+
3. **Decompose the question based on intent boundaries**:
|
|
7
|
+
- Prioritize splitting the query where each subquery can map to an intent from the available list
|
|
8
|
+
- If a portion of the query matches an available intent, create a subquery for it and set the intentName
|
|
9
|
+
- If a portion of the query does NOT match any available intent, still create a subquery for it but leave intentName empty/null
|
|
10
|
+
- Each subquery should be the minimal unit that represents a coherent request or action
|
|
11
|
+
- If the query maps to a single intent (or single action), keep it as one subquery
|
|
12
|
+
4. For each subquery, provide a 2-3 sentence summary of what actions will be performed
|
|
13
|
+
5. Maintain the logical sequence of the original question when splitting into subqueries
|
|
14
|
+
6. **Important**: Use the intent list as a guide for decomposition, but don't force-fit queries into intents that don't match. It's acceptable to have subqueries without matching intents.
|
|
15
|
+
7. Determine if the final response needs aggregation:
|
|
16
|
+
- Review all decomposed subqueries and their expected results
|
|
17
|
+
- Set needsAggregation to TRUE if: the results from multiple subqueries should be combined and synthesized into a single, unified response
|
|
18
|
+
- Set needsAggregation to FALSE if: the aggregation step is not required (e.g., only one subquery exists, OR the subqueries are independent and their individual results can be returned separately without combination)
|
|
19
|
+
|
|
20
|
+
Requirements:
|
|
21
|
+
- Prioritize using available intents when decomposing queries
|
|
22
|
+
- Use intent boundaries as the primary guide for splitting, but allow subqueries without matching intents when necessary
|
|
23
|
+
- Preserve the original meaning and context when splitting queries
|
|
24
|
+
- Set intentName only when there's a clear match with an available intent; leave it empty/null otherwise
|
|
25
|
+
- Even if the query is simple and maps to a single intent (or action), return it as a single-element array with one subquery object
|
|
26
|
+
- Set needsAggregation based on whether the user expects a unified combined answer or separate responses
|
|
27
|
+
`;
|
|
28
|
+
return `
|
|
29
|
+
Today is ${(/* @__PURE__ */ new Date()).toLocaleDateString()}.
|
|
30
|
+
|
|
31
|
+
${multiTriggerPrompt2}
|
|
32
|
+
|
|
33
|
+
Output Format:
|
|
34
|
+
You MUST return the output in the following JSON format. Do not include any other text before or after the JSON:
|
|
35
|
+
{
|
|
36
|
+
"needsAggregation": <true or false>,
|
|
37
|
+
"subqueries": [
|
|
38
|
+
{
|
|
39
|
+
"subquery": "<subquery_1>",
|
|
40
|
+
"intentName": "<intent_name_1>",
|
|
41
|
+
"actionPlan": "<2-3 sentence description of what will be done for this subquery>"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"subquery": "<subquery_2>",
|
|
45
|
+
"intentName": "<intent_name_2>",
|
|
46
|
+
"actionPlan": "<2-3 sentence description of what will be done for this subquery>"
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
Available intent list:
|
|
52
|
+
${intentList}
|
|
53
|
+
`;
|
|
54
|
+
}
|
|
55
|
+
var multi_trigger_default = multiTriggerPrompt;
|
|
56
|
+
|
|
57
|
+
export {
|
|
58
|
+
multi_trigger_default
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=chunk-3CR3ZB6L.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/services/prompts/multi-trigger.ts"],"sourcesContent":["import type { MemoryModule } from \"@/modules\";\n\nasync function multiTriggerPrompt(\n\tmemoryModule: MemoryModule,\n\tintentList: string,\n) {\n\tconst multiTriggerPrompt =\n\t\t(await memoryModule?.getAgentMemory()?.getMultiTriggerPrompt?.()) ||\n\t\t`Instructions:\n1. **First, review the available intent list** to understand what intents are available and what each intent can handle\n2. **Identify which intents from the list are relevant** to the user's question\n3. **Decompose the question based on intent boundaries**:\n - Prioritize splitting the query where each subquery can map to an intent from the available list\n - If a portion of the query matches an available intent, create a subquery for it and set the intentName\n - If a portion of the query does NOT match any available intent, still create a subquery for it but leave intentName empty/null\n - Each subquery should be the minimal unit that represents a coherent request or action\n - If the query maps to a single intent (or single action), keep it as one subquery\n4. For each subquery, provide a 2-3 sentence summary of what actions will be performed\n5. Maintain the logical sequence of the original question when splitting into subqueries\n6. **Important**: Use the intent list as a guide for decomposition, but don't force-fit queries into intents that don't match. It's acceptable to have subqueries without matching intents.\n7. Determine if the final response needs aggregation:\n - Review all decomposed subqueries and their expected results\n - Set needsAggregation to TRUE if: the results from multiple subqueries should be combined and synthesized into a single, unified response\n - Set needsAggregation to FALSE if: the aggregation step is not required (e.g., only one subquery exists, OR the subqueries are independent and their individual results can be returned separately without combination)\n\nRequirements:\n- Prioritize using available intents when decomposing queries\n- Use intent boundaries as the primary guide for splitting, but allow subqueries without matching intents when necessary\n- Preserve the original meaning and context when splitting queries\n- Set intentName only when there's a clear match with an available intent; leave it empty/null otherwise\n- Even if the query is simple and maps to a single intent (or action), return it as a single-element array with one subquery object\n- Set needsAggregation based on whether the user expects a unified combined answer or separate responses\n`;\n\n\treturn `\nToday is ${new Date().toLocaleDateString()}.\n\n${multiTriggerPrompt}\n\nOutput Format:\nYou MUST return the output in the following JSON format. Do not include any other text before or after the JSON:\n{\n \"needsAggregation\": <true or false>,\n \"subqueries\": [\n {\n \"subquery\": \"<subquery_1>\",\n \"intentName\": \"<intent_name_1>\",\n \"actionPlan\": \"<2-3 sentence description of what will be done for this subquery>\"\n },\n {\n \"subquery\": \"<subquery_2>\",\n \"intentName\": \"<intent_name_2>\",\n \"actionPlan\": \"<2-3 sentence description of what will be done for this subquery>\"\n }\n ]\n}\n\nAvailable intent list:\n${intentList}\n`;\n}\n\nexport default multiTriggerPrompt;\n"],"mappings":";AAEA,eAAe,mBACd,cACA,YACC;AACD,QAAMA,sBACJ,MAAM,cAAc,eAAe,GAAG,wBAAwB,KAC/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0BD,SAAO;AAAA,YACG,oBAAI,KAAK,GAAE,mBAAmB,CAAC;AAAA;AAAA,EAExCA,mBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAqBlB,UAAU;AAAA;AAEZ;AAEA,IAAO,wBAAQ;","names":["multiTriggerPrompt"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// src/services/prompts/tool-select.ts
|
|
2
|
+
async function toolSelectPrompt(memoryModule) {
|
|
3
|
+
const toolSelectPrompt2 = await memoryModule?.getAgentMemory()?.getToolSelectPrompt?.() || "\uC0AC\uC6A9\uC790\uC758 \uC694\uCCAD\uC744 \uD574\uACB0\uD558\uAE30 \uC704\uD574 \uC774 \uB3C4\uAD6C\uB97C \uC120\uD0DD\uD55C \uAD6C\uCCB4\uC801\uC778 \uC774\uC720\uC640 \uBAA9\uC801 (Why & What). \uD55C\uB450\uC904 \uC815\uB3C4\uC758 \uBD84\uB7C9\uC73C\uB85C \uC785\uB825 \uC5B8\uC5B4\uC640 \uAC19\uC740 \uC5B8\uC5B4\uB85C \uC0DD\uC131\uD558\uBA70, \uC815\uC911\uD55C \uD45C\uD604\uC744 \uC0AC\uC6A9\uD55C\uB2E4.";
|
|
4
|
+
return toolSelectPrompt2;
|
|
5
|
+
}
|
|
6
|
+
var tool_select_default = toolSelectPrompt;
|
|
7
|
+
|
|
8
|
+
export {
|
|
9
|
+
tool_select_default
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=chunk-5Z3SX3AE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/services/prompts/tool-select.ts"],"sourcesContent":["import type { MemoryModule } from \"@/modules\";\n\nasync function toolSelectPrompt(memoryModule: MemoryModule) {\n\tconst toolSelectPrompt =\n\t\t(await memoryModule?.getAgentMemory()?.getToolSelectPrompt?.()) ||\n\t\t\"사용자의 요청을 해결하기 위해 이 도구를 선택한 구체적인 이유와 목적 (Why & What). \\\n\t\t한두줄 정도의 분량으로 입력 언어와 같은 언어로 생성하며, 정중한 표현을 사용한다.\";\n\n\treturn toolSelectPrompt;\n}\n\nexport default toolSelectPrompt;\n"],"mappings":";AAEA,eAAe,iBAAiB,cAA4B;AAC3D,QAAMA,oBACJ,MAAM,cAAc,eAAe,GAAG,sBAAsB,KAC7D;AAGD,SAAOA;AACR;AAEA,IAAO,sBAAQ;","names":["toolSelectPrompt"]}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createModelApiRouter
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-IQ3BAWVV.js";
|
|
4
4
|
import {
|
|
5
5
|
createThreadApiRouter
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-MJMNQNQL.js";
|
|
7
7
|
import {
|
|
8
8
|
createWorkflowApiRouter
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-OV5MNKPH.js";
|
|
10
10
|
import {
|
|
11
11
|
createAgentApiRouter
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-OCULYA2R.js";
|
|
13
13
|
import {
|
|
14
14
|
createIntentApiRouter
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-GT74YHJR.js";
|
|
16
16
|
import {
|
|
17
17
|
getMemoryModule
|
|
18
18
|
} from "./chunk-VSQVYW2H.js";
|
|
@@ -35,4 +35,4 @@ var createApiRouter = () => {
|
|
|
35
35
|
export {
|
|
36
36
|
createApiRouter
|
|
37
37
|
};
|
|
38
|
-
//# sourceMappingURL=chunk-
|
|
38
|
+
//# sourceMappingURL=chunk-BQO572DY.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-
|
|
2
|
+
generate_title_default
|
|
3
|
+
} from "./chunk-HSAGEBXJ.js";
|
|
4
4
|
import {
|
|
5
5
|
AinHttpError
|
|
6
6
|
} from "./chunk-C5JXXLCW.js";
|
|
@@ -26,6 +26,28 @@ var QueryService = class {
|
|
|
26
26
|
const threadMemory = this.memoryModule.getThreadMemory();
|
|
27
27
|
await threadMemory?.addMessagesToThread(userId, threadId, messages);
|
|
28
28
|
}
|
|
29
|
+
async generateTitle(query, options) {
|
|
30
|
+
const DEFAULT_TITLE = "New Chat";
|
|
31
|
+
try {
|
|
32
|
+
const modelInstance = this.modelModule.getModel();
|
|
33
|
+
const modelOptions = this.modelModule.getModelOptions();
|
|
34
|
+
const messages = modelInstance.generateMessages({
|
|
35
|
+
query,
|
|
36
|
+
systemPrompt: await generate_title_default(this.memoryModule)
|
|
37
|
+
});
|
|
38
|
+
const response = await modelInstance.fetch(
|
|
39
|
+
messages,
|
|
40
|
+
options ?? modelOptions
|
|
41
|
+
);
|
|
42
|
+
return response.content || DEFAULT_TITLE;
|
|
43
|
+
} catch (error) {
|
|
44
|
+
loggers.intent.error("Error generating title", {
|
|
45
|
+
error,
|
|
46
|
+
query
|
|
47
|
+
});
|
|
48
|
+
return DEFAULT_TITLE;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
29
51
|
/**
|
|
30
52
|
* Main entry point for processing streaming user queries.
|
|
31
53
|
*
|
|
@@ -56,7 +78,7 @@ var QueryService = class {
|
|
|
56
78
|
}
|
|
57
79
|
threadId ??= randomUUID();
|
|
58
80
|
if (!thread) {
|
|
59
|
-
const title = await generateTitle(
|
|
81
|
+
const title = await this.generateTitle(query, options);
|
|
60
82
|
const metadata = await threadMemory?.createThread(
|
|
61
83
|
type,
|
|
62
84
|
userId,
|
|
@@ -107,4 +129,4 @@ var QueryService = class {
|
|
|
107
129
|
export {
|
|
108
130
|
QueryService
|
|
109
131
|
};
|
|
110
|
-
//# sourceMappingURL=chunk-
|
|
132
|
+
//# sourceMappingURL=chunk-C6GUUAED.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/services/query.service.ts"],"sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { StatusCodes } from \"http-status-codes\";\nimport type {\n\tMemoryModule,\n\tModelFetchOptions,\n\tModelModule,\n} from \"@/modules/index.js\";\nimport { AinHttpError } from \"@/types/agent.js\";\nimport {\n\ttype MessageObject,\n\tMessageRole,\n\ttype ThreadMetadata,\n\ttype ThreadObject,\n\ttype ThreadType,\n} from \"@/types/memory.js\";\nimport type { StreamEvent } from \"@/types/stream\";\nimport { loggers } from \"@/utils/logger.js\";\nimport type { IntentFulfillService } from \"./intents/fulfill.service\";\nimport type { IntentTriggerService } from \"./intents/trigger.service\";\nimport generateTitlePrompt from \"./prompts/generate-title\";\n\n/**\n * Service for processing user queries through the agent's AI pipeline.\n *\n * Orchestrates the query processing workflow including intent detection,\n * model inference, tool execution, and response generation. Manages\n * conversation context and coordinates between different modules.\n */\nexport class QueryService {\n\tprivate modelModule: ModelModule;\n\tprivate memoryModule: MemoryModule;\n\tprivate intentTriggerService: IntentTriggerService;\n\tprivate intentFulfillService: IntentFulfillService;\n\n\tconstructor(\n\t\tmodelModule: ModelModule,\n\t\tmemoryModule: MemoryModule,\n\t\tintentTriggerService: IntentTriggerService,\n\t\tintentFulfillService: IntentFulfillService,\n\t) {\n\t\tthis.modelModule = modelModule;\n\t\tthis.memoryModule = memoryModule;\n\t\tthis.intentTriggerService = intentTriggerService;\n\t\tthis.intentFulfillService = intentFulfillService;\n\t}\n\n\tpublic async addToThreadMessages(\n\t\tuserId: string,\n\t\tthreadId: string,\n\t\tmessages: Array<MessageObject>,\n\t) {\n\t\tconst threadMemory = this.memoryModule.getThreadMemory();\n\t\tawait threadMemory?.addMessagesToThread(userId, threadId, messages);\n\t}\n\n\tpublic async generateTitle(\n\t\tquery: string,\n\t\toptions?: ModelFetchOptions,\n\t): Promise<string> {\n\t\tconst DEFAULT_TITLE = \"New Chat\";\n\t\ttry {\n\t\t\tconst modelInstance = this.modelModule.getModel();\n\t\t\tconst modelOptions = this.modelModule.getModelOptions();\n\t\t\tconst messages = modelInstance.generateMessages({\n\t\t\t\tquery,\n\t\t\t\tsystemPrompt: await generateTitlePrompt(this.memoryModule),\n\t\t\t});\n\t\t\tconst response = await modelInstance.fetch(\n\t\t\t\tmessages,\n\t\t\t\toptions ?? modelOptions,\n\t\t\t);\n\t\t\treturn response.content || DEFAULT_TITLE;\n\t\t} catch (error) {\n\t\t\tloggers.intent.error(\"Error generating title\", {\n\t\t\t\terror,\n\t\t\t\tquery,\n\t\t\t});\n\t\t\treturn DEFAULT_TITLE;\n\t\t}\n\t}\n\n\t/**\n\t * Main entry point for processing streaming user queries.\n\t *\n\t * Handles the complete query lifecycle:\n\t * 1. Loads or creates thread from memory\n\t * 2. Detects intent from the query\n\t * 3. Fulfills the intent with streaming AI response\n\t * 4. Updates conversation history in real-time\n\t *\n\t * @param threadMetadata - Metadata containing type, userId, and optional threadId\n\t * @param threadMetadata.type - The type of thread (e.g., chat, workflow)\n\t * @param threadMetadata.userId - The user's unique identifier\n\t * @param threadMetadata.threadId - Optional thread identifier\n\t * @param query - The user's input query\n\t * @returns AsyncGenerator yielding StreamEvent objects for SSE\n\t */\n\tpublic async *handleQuery(\n\t\tthreadMetadata: {\n\t\t\ttype: ThreadType;\n\t\t\tuserId: string;\n\t\t\tthreadId?: string;\n\t\t\toptions?: ModelFetchOptions;\n\t\t},\n\t\tqueryData: {\n\t\t\tquery: string;\n\t\t\tdisplayQuery?: string;\n\t\t},\n\t\tisA2A?: boolean,\n\t): AsyncGenerator<StreamEvent> {\n\t\tconst { type, userId, options } = threadMetadata;\n\t\tconst { query, displayQuery } = queryData;\n\t\tconst threadMemory = this.memoryModule.getThreadMemory();\n\n\t\t// 1. Load or create thread\n\t\tlet threadId = threadMetadata.threadId;\n\t\tlet thread: ThreadObject | undefined;\n\t\tif (threadId) {\n\t\t\tthread = await threadMemory?.getThread(userId, threadId);\n\t\t\tif (!thread && !isA2A) {\n\t\t\t\tthrow new AinHttpError(StatusCodes.NOT_FOUND, \"Thread not found\");\n\t\t\t}\n\t\t}\n\n\t\tthreadId ??= randomUUID();\n\t\tif (!thread) {\n\t\t\tconst title = await this.generateTitle(query, options);\n\t\t\tconst metadata: ThreadMetadata = (await threadMemory?.createThread(\n\t\t\t\ttype,\n\t\t\t\tuserId,\n\t\t\t\tthreadId,\n\t\t\t\ttitle,\n\t\t\t)) || { type, userId, threadId, title };\n\t\t\tthread = { ...metadata, messages: [] };\n\t\t\tloggers.intent.info(`Create new thread: ${threadId}`);\n\t\t\tyield { event: \"thread_id\", data: { type, userId, threadId, title } };\n\t\t}\n\n\t\t// 2. intent triggering\n\t\tconst triggerResult = await this.intentTriggerService.intentTriggering(\n\t\t\tquery,\n\t\t\tthread,\n\t\t);\n\t\tconst { intents: triggeredIntents, needsAggregation } = triggerResult;\n\t\tloggers.intent.debug(\"Triggered intents\", {\n\t\t\ttriggeredIntents,\n\t\t\tneedsAggregation,\n\t\t});\n\n\t\t// only add for storage, not for inference\n\t\tawait this.addToThreadMessages(userId, threadId, [\n\t\t\t{\n\t\t\t\tmessageId: randomUUID(),\n\t\t\t\trole: MessageRole.USER,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t// use displayQuery for better UX in enterprise application\n\t\t\t\tcontent: { type: \"text\", parts: [displayQuery || query] },\n\t\t\t\tmetadata: {\n\t\t\t\t\tintents: triggeredIntents\n\t\t\t\t\t\t.filter((intent) => !!intent.intent)\n\t\t\t\t\t\t.map((intent) => ({\n\t\t\t\t\t\t\tid: intent.intent?.id,\n\t\t\t\t\t\t\tsubquery: intent.subquery,\n\t\t\t\t\t\t})),\n\t\t\t\t\tquery: !displayQuery ? undefined : query,\n\t\t\t\t},\n\t\t\t},\n\t\t]);\n\n\t\t// 3. intent fulfillment (with rewrite step)\n\t\tconst stream = this.intentFulfillService.intentFulfill(\n\t\t\ttriggeredIntents,\n\t\t\tthread,\n\t\t\tquery,\n\t\t\tneedsAggregation,\n\t\t);\n\n\t\tfor await (const event of stream) {\n\t\t\tyield event;\n\t\t}\n\t}\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import {
|
|
2
|
+
single_trigger_default
|
|
3
|
+
} from "./chunk-XQUENGL4.js";
|
|
1
4
|
import {
|
|
2
5
|
loggers
|
|
3
6
|
} from "./chunk-GHUEA7V5.js";
|
|
@@ -36,35 +39,22 @@ var SingleIntentTriggerService = class {
|
|
|
36
39
|
const content = Array.isArray(message.content.parts) ? message.content.parts.join(" ") : String(message.content.parts);
|
|
37
40
|
return `${role}: """${content}"""`;
|
|
38
41
|
}).join("\n");
|
|
39
|
-
const systemPrompt =
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
${
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const userMessage = `
|
|
48
|
-
${threadMessages !== "" ? `The following is the conversation history with the user: ${threadMessages}
|
|
42
|
+
const systemPrompt = await single_trigger_default(
|
|
43
|
+
this.memoryModule,
|
|
44
|
+
intentList
|
|
45
|
+
);
|
|
46
|
+
const triggerMessage = `
|
|
47
|
+
${threadMessages !== "" ? `
|
|
48
|
+
The following is the conversation history with the user:
|
|
49
|
+
${threadMessages}
|
|
49
50
|
|
|
50
|
-
|
|
51
|
+
` : ""}
|
|
51
52
|
User question: "${query}"
|
|
52
53
|
|
|
53
54
|
Based on the above conversation history, analyze the user question and identify the most relevant intent.
|
|
54
|
-
|
|
55
|
-
Instructions:
|
|
56
|
-
1. Select the single most appropriate intent from the available intent list
|
|
57
|
-
2. If no intent matches well, do not set intentName
|
|
58
|
-
3. Provide a 2-3 sentence action plan describing what will be done
|
|
59
|
-
|
|
60
|
-
Output Format:
|
|
61
|
-
You MUST return the output in the following JSON format. Do not include any other text before or after the JSON:
|
|
62
|
-
{
|
|
63
|
-
"intentName": "<intent_name or null>",
|
|
64
|
-
"actionPlan": "<2-3 sentence description of what will be done>"
|
|
65
|
-
}`;
|
|
55
|
+
`;
|
|
66
56
|
const messages = modelInstance.generateMessages({
|
|
67
|
-
query:
|
|
57
|
+
query: triggerMessage,
|
|
68
58
|
systemPrompt
|
|
69
59
|
});
|
|
70
60
|
const response = await modelInstance.fetch(messages, modelOptions);
|
|
@@ -92,4 +82,4 @@ You MUST return the output in the following JSON format. Do not include any othe
|
|
|
92
82
|
export {
|
|
93
83
|
SingleIntentTriggerService
|
|
94
84
|
};
|
|
95
|
-
//# sourceMappingURL=chunk-
|
|
85
|
+
//# sourceMappingURL=chunk-CRQEBSRD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/services/intents/single-trigger.service.ts"],"sourcesContent":["import type { MemoryModule, ModelModule } from \"@/modules\";\nimport type {\n\tIntentTriggerResult,\n\tMessageObject,\n\tThreadObject,\n\tTriggeredIntent,\n} from \"@/types/memory\";\nimport { loggers } from \"@/utils/logger\";\nimport singleTriggerPrompt from \"../prompts/single-trigger\";\n\n/**\n * Service for single-intent triggering.\n * Identifies a single intent without decomposing queries into subqueries.\n */\nexport class SingleIntentTriggerService {\n\tprivate modelModule: ModelModule;\n\tprivate memoryModule: MemoryModule;\n\n\tconstructor(modelModule: ModelModule, memoryModule: MemoryModule) {\n\t\tthis.modelModule = modelModule;\n\t\tthis.memoryModule = memoryModule;\n\t}\n\n\t/**\n\t * Detects a single intent from context.\n\t * Simpler prompt that doesn't decompose queries into subqueries.\n\t *\n\t * @param query - The user's input query\n\t * @param thread - The thread history\n\t * @returns IntentTriggerResult with single intent and needsAggregation=false\n\t */\n\tpublic async intentTriggering(\n\t\tquery: string,\n\t\tthread: ThreadObject | undefined,\n\t): Promise<IntentTriggerResult> {\n\t\tconst modelInstance = this.modelModule.getModel();\n\t\tconst modelOptions = this.modelModule.getModelOptions();\n\t\tconst intentMemory = this.memoryModule.getIntentMemory();\n\t\tif (!intentMemory) {\n\t\t\treturn { intents: [{ subquery: query }], needsAggregation: false };\n\t\t}\n\n\t\tconst intents = await intentMemory.listIntents();\n\t\tif (intents.length === 0) {\n\t\t\tloggers.intentStream.warn(\"No intent found\");\n\t\t\treturn { intents: [{ subquery: query }], needsAggregation: false };\n\t\t}\n\n\t\tconst intentList = intents\n\t\t\t.map((intent) => `- ${intent.name}: ${intent.description}`)\n\t\t\t.join(\"\\n\");\n\n\t\t// Convert thread messages to a string\n\t\tconst threadMessages = !thread\n\t\t\t? \"\"\n\t\t\t: thread.messages\n\t\t\t\t\t.sort((a, b) => a.timestamp - b.timestamp)\n\t\t\t\t\t.map((message: MessageObject) => {\n\t\t\t\t\t\tconst role =\n\t\t\t\t\t\t\tmessage.role === \"USER\"\n\t\t\t\t\t\t\t\t? \"User\"\n\t\t\t\t\t\t\t\t: message.role === \"MODEL\"\n\t\t\t\t\t\t\t\t\t? \"Assistant\"\n\t\t\t\t\t\t\t\t\t: \"System\";\n\t\t\t\t\t\tconst content = Array.isArray(message.content.parts)\n\t\t\t\t\t\t\t? message.content.parts.join(\" \")\n\t\t\t\t\t\t\t: String(message.content.parts);\n\t\t\t\t\t\treturn `${role}: \"\"\"${content}\"\"\"`;\n\t\t\t\t\t})\n\t\t\t\t\t.join(\"\\n\");\n\n\t\tconst systemPrompt = await singleTriggerPrompt(\n\t\t\tthis.memoryModule,\n\t\t\tintentList,\n\t\t);\n\n\t\tconst triggerMessage = `\n${\n\tthreadMessages !== \"\"\n\t\t? `\nThe following is the conversation history with the user:\n${threadMessages}\n\n`\n\t\t: \"\"\n}\nUser question: \"${query}\"\n\nBased on the above conversation history, analyze the user question and identify the most relevant intent.\n`;\n\n\t\tconst messages = modelInstance.generateMessages({\n\t\t\tquery: triggerMessage,\n\t\t\tsystemPrompt,\n\t\t});\n\n\t\tconst response = await modelInstance.fetch(messages, modelOptions);\n\t\tif (!response.content) {\n\t\t\tloggers.intent.warn(\"Cannot extract intent from query\");\n\t\t\treturn { intents: [{ subquery: query }], needsAggregation: false };\n\t\t}\n\n\t\tlet parsed: { intentName?: string; actionPlan?: string };\n\t\ttry {\n\t\t\tparsed = JSON.parse(response.content);\n\t\t} catch (error: unknown) {\n\t\t\treturn { intents: [{ subquery: query }], needsAggregation: false };\n\t\t}\n\n\t\tconst result: TriggeredIntent = {\n\t\t\tsubquery: query,\n\t\t\tactionPlan: parsed.actionPlan,\n\t\t};\n\n\t\tif (parsed.intentName) {\n\t\t\tresult.intent = await intentMemory.getIntentByName(parsed.intentName);\n\t\t}\n\n\t\treturn { intents: [result], needsAggregation: false };\n\t}\n}\n"],"mappings":";;;;;;;;AAcO,IAAM,6BAAN,MAAiC;AAAA,EAC/B;AAAA,EACA;AAAA,EAER,YAAY,aAA0B,cAA4B;AACjE,SAAK,cAAc;AACnB,SAAK,eAAe;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAa,iBACZ,OACA,QAC+B;AAC/B,UAAM,gBAAgB,KAAK,YAAY,SAAS;AAChD,UAAM,eAAe,KAAK,YAAY,gBAAgB;AACtD,UAAM,eAAe,KAAK,aAAa,gBAAgB;AACvD,QAAI,CAAC,cAAc;AAClB,aAAO,EAAE,SAAS,CAAC,EAAE,UAAU,MAAM,CAAC,GAAG,kBAAkB,MAAM;AAAA,IAClE;AAEA,UAAM,UAAU,MAAM,aAAa,YAAY;AAC/C,QAAI,QAAQ,WAAW,GAAG;AACzB,cAAQ,aAAa,KAAK,iBAAiB;AAC3C,aAAO,EAAE,SAAS,CAAC,EAAE,UAAU,MAAM,CAAC,GAAG,kBAAkB,MAAM;AAAA,IAClE;AAEA,UAAM,aAAa,QACjB,IAAI,CAAC,WAAW,KAAK,OAAO,IAAI,KAAK,OAAO,WAAW,EAAE,EACzD,KAAK,IAAI;AAGX,UAAM,iBAAiB,CAAC,SACrB,KACA,OAAO,SACN,KAAK,CAAC,GAAG,MAAM,EAAE,YAAY,EAAE,SAAS,EACxC,IAAI,CAAC,YAA2B;AAChC,YAAM,OACL,QAAQ,SAAS,SACd,SACA,QAAQ,SAAS,UAChB,cACA;AACL,YAAM,UAAU,MAAM,QAAQ,QAAQ,QAAQ,KAAK,IAChD,QAAQ,QAAQ,MAAM,KAAK,GAAG,IAC9B,OAAO,QAAQ,QAAQ,KAAK;AAC/B,aAAO,GAAG,IAAI,QAAQ,OAAO;AAAA,IAC9B,CAAC,EACA,KAAK,IAAI;AAEb,UAAM,eAAe,MAAM;AAAA,MAC1B,KAAK;AAAA,MACL;AAAA,IACD;AAEA,UAAM,iBAAiB;AAAA,EAExB,mBAAmB,KAChB;AAAA;AAAA,EAEF,cAAc;AAAA;AAAA,IAGZ,EACJ;AAAA,kBACkB,KAAK;AAAA;AAAA;AAAA;AAKrB,UAAM,WAAW,cAAc,iBAAiB;AAAA,MAC/C,OAAO;AAAA,MACP;AAAA,IACD,CAAC;AAED,UAAM,WAAW,MAAM,cAAc,MAAM,UAAU,YAAY;AACjE,QAAI,CAAC,SAAS,SAAS;AACtB,cAAQ,OAAO,KAAK,kCAAkC;AACtD,aAAO,EAAE,SAAS,CAAC,EAAE,UAAU,MAAM,CAAC,GAAG,kBAAkB,MAAM;AAAA,IAClE;AAEA,QAAI;AACJ,QAAI;AACH,eAAS,KAAK,MAAM,SAAS,OAAO;AAAA,IACrC,SAAS,OAAgB;AACxB,aAAO,EAAE,SAAS,CAAC,EAAE,UAAU,MAAM,CAAC,GAAG,kBAAkB,MAAM;AAAA,IAClE;AAEA,UAAM,SAA0B;AAAA,MAC/B,UAAU;AAAA,MACV,YAAY,OAAO;AAAA,IACpB;AAEA,QAAI,OAAO,YAAY;AACtB,aAAO,SAAS,MAAM,aAAa,gBAAgB,OAAO,UAAU;AAAA,IACrE;AAEA,WAAO,EAAE,SAAS,CAAC,MAAM,GAAG,kBAAkB,MAAM;AAAA,EACrD;AACD;","names":[]}
|