veadk-python 0.1.0__py3-none-any.whl → 0.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (468) hide show
  1. veadk/__pycache__/__init__.cpython-310.pyc +0 -0
  2. veadk/__pycache__/agent.cpython-310.pyc +0 -0
  3. veadk/__pycache__/config.cpython-310.pyc +0 -0
  4. veadk/__pycache__/consts.cpython-310.pyc +0 -0
  5. veadk/__pycache__/runner.cpython-310.pyc +0 -0
  6. veadk/__pycache__/types.cpython-310.pyc +0 -0
  7. veadk/__pycache__/version.cpython-310.pyc +0 -0
  8. veadk/a2a/__pycache__/__init__.cpython-310.pyc +0 -0
  9. veadk/a2a/__pycache__/agent_card.cpython-310.pyc +0 -0
  10. veadk/a2a/__pycache__/remote_ve_agent.cpython-310.pyc +0 -0
  11. veadk/a2a/remote_ve_agent.py +14 -0
  12. veadk/agent.py +9 -3
  13. veadk/cli/__pycache__/__init__.cpython-310.pyc +0 -0
  14. veadk/cli/__pycache__/main.cpython-310.pyc +0 -0
  15. veadk/cli/main.py +108 -7
  16. veadk/cli/services/agentpilot/__pycache__/__init__.cpython-310.pyc +0 -0
  17. veadk/cli/services/agentpilot/__pycache__/agentpilot.cpython-310.pyc +0 -0
  18. veadk/cli/services/veapig/__pycache__/__init__.cpython-310.pyc +0 -0
  19. veadk/cli/services/veapig/__pycache__/apig.cpython-310.pyc +0 -0
  20. veadk/cli/services/vefaas/__pycache__/__init__.cpython-310.pyc +0 -0
  21. veadk/cli/services/vefaas/__pycache__/vefaas.cpython-310.pyc +0 -0
  22. veadk/cli/services/vefaas/__pycache__/vefaas_utils.cpython-310.pyc +0 -0
  23. veadk/cli/services/vefaas/template/README.md +37 -0
  24. veadk/cli/services/vefaas/template/__init__.py +13 -0
  25. veadk/cli/services/vefaas/template/config.yaml.example +19 -0
  26. veadk/cli/services/vefaas/template/deploy.py +25 -11
  27. veadk/cli/services/vefaas/template/src/__init__.py +14 -0
  28. veadk/cli/services/vefaas/template/src/__pycache__/agent.cpython-310.pyc +0 -0
  29. veadk/cli/services/vefaas/template/src/__pycache__/studio_app.cpython-310.pyc +0 -0
  30. veadk/cli/services/vefaas/template/src/agent.py +25 -0
  31. veadk/cli/services/vefaas/template/src/app.py +48 -8
  32. veadk/cli/services/vefaas/template/src/requirements.txt +6 -0
  33. veadk/cli/services/vefaas/template/src/run.sh +63 -0
  34. veadk/cli/services/vefaas/template/src/studio_app.py +47 -0
  35. veadk/cli/services/vefaas/vefaas.py +153 -101
  36. veadk/cli/studio/__pycache__/__init__.cpython-310.pyc +0 -0
  37. veadk/cli/studio/__pycache__/fast_api.cpython-310.pyc +0 -0
  38. veadk/cli/studio/__pycache__/models.cpython-310.pyc +0 -0
  39. veadk/cli/studio/__pycache__/studio_processor.cpython-310.pyc +0 -0
  40. veadk/cli/studio/fast_api.py +305 -145
  41. veadk/cli/studio/models.py +76 -0
  42. veadk/cli/studio/studio_processor.py +127 -0
  43. veadk/cli/studio/web/404.html +1 -0
  44. veadk/cli/studio/web/__init__.py +13 -0
  45. veadk/cli/studio/web/__pycache__/__init__.cpython-310.pyc +0 -0
  46. veadk/cli/studio/web/_next/static/chunks/1012.1c22f40693022876.js +1 -0
  47. veadk/cli/studio/web/_next/static/chunks/1017.577d2551c3a2b396.js +1 -0
  48. veadk/cli/studio/web/_next/static/chunks/1044.7c49605a0f9b5d5c.js +1 -0
  49. veadk/cli/studio/web/_next/static/chunks/1067.71aee8d185b3a9d7.js +1 -0
  50. veadk/cli/studio/web/_next/static/chunks/1088.8f7f3c71458d301b.js +1 -0
  51. veadk/cli/studio/web/_next/static/chunks/1092.7b553ab1ec1737bf.js +1 -0
  52. veadk/cli/studio/web/_next/static/chunks/1117.8c537e259adccbe2.js +1 -0
  53. veadk/cli/studio/web/_next/static/chunks/1142.1faf8d46ccf4030c.js +1 -0
  54. veadk/cli/studio/web/_next/static/chunks/1146.25bf08c82f4ad1c5.js +1 -0
  55. veadk/cli/studio/web/_next/static/chunks/1192.55e7712b3dc8b6a8.js +1 -0
  56. veadk/cli/studio/web/_next/static/chunks/1200.1038681512a9f69a.js +1 -0
  57. veadk/cli/studio/web/_next/static/chunks/1265.e055670c82b2d131.js +1 -0
  58. veadk/cli/studio/web/_next/static/chunks/1275.322d8bf8a580b859.js +1 -0
  59. veadk/cli/studio/web/_next/static/chunks/140.d7e90f5e12cf288c.js +1 -0
  60. veadk/cli/studio/web/_next/static/chunks/1421.7fff0e9f0677f79b.js +1 -0
  61. veadk/cli/studio/web/_next/static/chunks/1469.16c1e07a7c0f9817.js +1 -0
  62. veadk/cli/studio/web/_next/static/chunks/1480.3c94a6d6d61c4f56.js +1 -0
  63. veadk/cli/studio/web/_next/static/chunks/1507.4c7617217de3bef8.js +1 -0
  64. veadk/cli/studio/web/_next/static/chunks/1523.1740f3d9d913fe76.js +1 -0
  65. veadk/cli/studio/web/_next/static/chunks/1526.5fb34657a70589b5.js +1 -0
  66. veadk/cli/studio/web/_next/static/chunks/1563.6c364e96b33f3328.js +1 -0
  67. veadk/cli/studio/web/_next/static/chunks/157.2e3f508bc115c15c.js +1 -0
  68. veadk/cli/studio/web/_next/static/chunks/1577.b6cebda169ac9c75.js +1 -0
  69. veadk/cli/studio/web/_next/static/chunks/1622.a611b4dab478587d.js +1 -0
  70. veadk/cli/studio/web/_next/static/chunks/1685.db5d4efe2f0e3767.js +1 -0
  71. veadk/cli/studio/web/_next/static/chunks/1687.a10254d4e1dd84c0.js +1 -0
  72. veadk/cli/studio/web/_next/static/chunks/1826.da2ac0fcfb59cfae.js +1 -0
  73. veadk/cli/studio/web/_next/static/chunks/1832.f81112d6166a9563.js +1 -0
  74. veadk/cli/studio/web/_next/static/chunks/1851.1d0bdfdf5fa89313.js +1 -0
  75. veadk/cli/studio/web/_next/static/chunks/189.c602a68aadf321e4.js +1 -0
  76. veadk/cli/studio/web/_next/static/chunks/1899.dd303f08095745bc.js +1 -0
  77. veadk/cli/studio/web/_next/static/chunks/193.1e81c5b253db2ee7.js +1 -0
  78. veadk/cli/studio/web/_next/static/chunks/1936.8fad6d3898c86483.js +1 -0
  79. veadk/cli/studio/web/_next/static/chunks/1942.165056b632c269d4.js +1 -0
  80. veadk/cli/studio/web/_next/static/chunks/1974.ee28ba5ac111af70.js +1 -0
  81. veadk/cli/studio/web/_next/static/chunks/2.c2afe2e24520b5de.js +1 -0
  82. veadk/cli/studio/web/_next/static/chunks/2006.298ac00a777dc313.js +1 -0
  83. veadk/cli/studio/web/_next/static/chunks/2063.69ba443b7901194c.js +1 -0
  84. veadk/cli/studio/web/_next/static/chunks/2067-e02b0bc96d886930.js +91 -0
  85. veadk/cli/studio/web/_next/static/chunks/2119.4595d21bc0340c5b.js +1 -0
  86. veadk/cli/studio/web/_next/static/chunks/212.0a8d6163667d9369.js +1 -0
  87. veadk/cli/studio/web/_next/static/chunks/2190.5549f7a57901bd46.js +1 -0
  88. veadk/cli/studio/web/_next/static/chunks/2193.51ce38cc9e965abd.js +1 -0
  89. veadk/cli/studio/web/_next/static/chunks/2202.a6c08676680e55ad.js +1 -0
  90. veadk/cli/studio/web/_next/static/chunks/2247.af410bd18c38e538.js +1 -0
  91. veadk/cli/studio/web/_next/static/chunks/2313.6932520daf0fa88c.js +1 -0
  92. veadk/cli/studio/web/_next/static/chunks/2316.c9eafa57971eebc8.js +1 -0
  93. veadk/cli/studio/web/_next/static/chunks/2324.766859688506ac0d.js +1 -0
  94. veadk/cli/studio/web/_next/static/chunks/2328.131b0296bc19ba4e.js +1 -0
  95. veadk/cli/studio/web/_next/static/chunks/2332.b9b7ac0b386a4a28.js +1 -0
  96. veadk/cli/studio/web/_next/static/chunks/2344.cc417c70cb6dbc51.js +1 -0
  97. veadk/cli/studio/web/_next/static/chunks/2347.9f442b75b11de668.js +1 -0
  98. veadk/cli/studio/web/_next/static/chunks/2356.f6b4ac7eb50edb44.js +1 -0
  99. veadk/cli/studio/web/_next/static/chunks/2370.044b34646bc58363.js +1 -0
  100. veadk/cli/studio/web/_next/static/chunks/2378.2005af4d2bf100dd.js +1 -0
  101. veadk/cli/studio/web/_next/static/chunks/2437.68534e42d45c5c61.js +1 -0
  102. veadk/cli/studio/web/_next/static/chunks/2449.db460ea54b851bc1.js +1 -0
  103. veadk/cli/studio/web/_next/static/chunks/2455.153b04863d2ae9dc.js +1 -0
  104. veadk/cli/studio/web/_next/static/chunks/2484.139843b3f1cc8ea5.js +1 -0
  105. veadk/cli/studio/web/_next/static/chunks/2500.e2b8da0d1401bd5f.js +1 -0
  106. veadk/cli/studio/web/_next/static/chunks/2513.a7056ff98b04c4cd.js +1 -0
  107. veadk/cli/studio/web/_next/static/chunks/2533.5e35d247414428d0.js +1 -0
  108. veadk/cli/studio/web/_next/static/chunks/2541.3e5a23b461d7a9fd.js +1 -0
  109. veadk/cli/studio/web/_next/static/chunks/2545.0e4e3a784391205b.js +1 -0
  110. veadk/cli/studio/web/_next/static/chunks/2558.17eda1052d7c8c1f.js +1 -0
  111. veadk/cli/studio/web/_next/static/chunks/2559.7432df2540cfff07.js +1 -0
  112. veadk/cli/studio/web/_next/static/chunks/2578.1be0687e71bc7731.js +1 -0
  113. veadk/cli/studio/web/_next/static/chunks/2601.aa7e57bdf472372c.js +1 -0
  114. veadk/cli/studio/web/_next/static/chunks/261-19b52c2c85aefb5d.js +1 -0
  115. veadk/cli/studio/web/_next/static/chunks/2642.9ea0966ca6bd8ace.js +1 -0
  116. veadk/cli/studio/web/_next/static/chunks/2669.e90ab188be48154e.js +1 -0
  117. veadk/cli/studio/web/_next/static/chunks/2737.4f5c7f7b9293ae65.js +1 -0
  118. veadk/cli/studio/web/_next/static/chunks/2804.b801cadc26133d92.js +1 -0
  119. veadk/cli/studio/web/_next/static/chunks/2817.8584109b4bc979e8.js +1 -0
  120. veadk/cli/studio/web/_next/static/chunks/282.cfff86fab979470f.js +1 -0
  121. veadk/cli/studio/web/_next/static/chunks/2822.12cdf0520b2d321a.js +1 -0
  122. veadk/cli/studio/web/_next/static/chunks/288.5c1053dbdc74212b.js +1 -0
  123. veadk/cli/studio/web/_next/static/chunks/2964.a531dbf5eb867f3d.js +1 -0
  124. veadk/cli/studio/web/_next/static/chunks/2f7605f3.0531565b22967bb4.js +1 -0
  125. veadk/cli/studio/web/_next/static/chunks/3080.9aada68cdc9ad5c2.js +1 -0
  126. veadk/cli/studio/web/_next/static/chunks/3090.a9e7f71df818f607.js +1 -0
  127. veadk/cli/studio/web/_next/static/chunks/3103.b7cdb76d87ac0fdd.js +1 -0
  128. veadk/cli/studio/web/_next/static/chunks/311.2737abd09304ba1b.js +1 -0
  129. veadk/cli/studio/web/_next/static/chunks/3110.84511591e516221b.js +1 -0
  130. veadk/cli/studio/web/_next/static/chunks/3126.307ac469edcf6ec9.js +1 -0
  131. veadk/cli/studio/web/_next/static/chunks/320.a3c0085ebf05b7da.js +1 -0
  132. veadk/cli/studio/web/_next/static/chunks/322.668c1a20cc012c68.js +1 -0
  133. veadk/cli/studio/web/_next/static/chunks/3341.a0f06b1edc2332fb.js +1 -0
  134. veadk/cli/studio/web/_next/static/chunks/3357.ced93e6bf8e56762.js +1 -0
  135. veadk/cli/studio/web/_next/static/chunks/3386.53f3aa4ff0dd0170.js +1 -0
  136. veadk/cli/studio/web/_next/static/chunks/3391.402e02fd7c297ff8.js +1 -0
  137. veadk/cli/studio/web/_next/static/chunks/3392.5172b1d190ff0e8c.js +1 -0
  138. veadk/cli/studio/web/_next/static/chunks/33fb68d2.aacf24a5979288bd.js +1 -0
  139. veadk/cli/studio/web/_next/static/chunks/3429.74dcaa985d188e43.js +1 -0
  140. veadk/cli/studio/web/_next/static/chunks/3433.737c3d948bdda1da.js +1 -0
  141. veadk/cli/studio/web/_next/static/chunks/3435.1798454b9a5b69ca.js +1 -0
  142. veadk/cli/studio/web/_next/static/chunks/3481.a916f933c4e534b8.js +1 -0
  143. veadk/cli/studio/web/_next/static/chunks/3602.bdf28129f1569554.js +1 -0
  144. veadk/cli/studio/web/_next/static/chunks/3607.49cec7e9330d1f4d.js +1 -0
  145. veadk/cli/studio/web/_next/static/chunks/3615.3280752d551adf2d.js +1 -0
  146. veadk/cli/studio/web/_next/static/chunks/3721.f660b5b05621f5e4.js +1 -0
  147. veadk/cli/studio/web/_next/static/chunks/3786.ae0824e683556d37.js +1 -0
  148. veadk/cli/studio/web/_next/static/chunks/3805.ec0340f0f6e61bbc.js +1 -0
  149. veadk/cli/studio/web/_next/static/chunks/4045.42a3c9fb7d932ebc.js +1 -0
  150. veadk/cli/studio/web/_next/static/chunks/4052.86cc820c95ad25a8.js +1 -0
  151. veadk/cli/studio/web/_next/static/chunks/4058.3cea468f5370b7c9.js +1 -0
  152. veadk/cli/studio/web/_next/static/chunks/4068.ff830b92579f6b7f.js +1 -0
  153. veadk/cli/studio/web/_next/static/chunks/411.5679da8e6a856022.js +1 -0
  154. veadk/cli/studio/web/_next/static/chunks/4118.e2544434642f6640.js +1 -0
  155. veadk/cli/studio/web/_next/static/chunks/4139.80b0aab26d9a4601.js +1 -0
  156. veadk/cli/studio/web/_next/static/chunks/423.da4e0abf5fd408dc.js +1 -0
  157. veadk/cli/studio/web/_next/static/chunks/4262.9d5532cb76a86371.js +1 -0
  158. veadk/cli/studio/web/_next/static/chunks/431.ef6d705ac627958f.js +1 -0
  159. veadk/cli/studio/web/_next/static/chunks/4337.3c94a6d6d61c4f56.js +1 -0
  160. veadk/cli/studio/web/_next/static/chunks/4357-39eb6b5934ac97db.js +1 -0
  161. veadk/cli/studio/web/_next/static/chunks/4382.64908590e0a18d66.js +1 -0
  162. veadk/cli/studio/web/_next/static/chunks/4489.7a9b45fb6f6bf491.js +1 -0
  163. veadk/cli/studio/web/_next/static/chunks/450.76880cb957b128fa.js +1 -0
  164. veadk/cli/studio/web/_next/static/chunks/452.14fb00ee415ad32b.js +1 -0
  165. veadk/cli/studio/web/_next/static/chunks/4577.d1cbd95a87e2adb2.js +1 -0
  166. veadk/cli/studio/web/_next/static/chunks/4626.0866c7ee38885775.js +1 -0
  167. veadk/cli/studio/web/_next/static/chunks/4627.3d7df52a668a6b57.js +1 -0
  168. veadk/cli/studio/web/_next/static/chunks/4713.3891f7d347513ef5.js +1 -0
  169. veadk/cli/studio/web/_next/static/chunks/4749.25fd94a8ed476b13.js +1 -0
  170. veadk/cli/studio/web/_next/static/chunks/4836.afe027e38fb9a7e8.js +1 -0
  171. veadk/cli/studio/web/_next/static/chunks/483e0093.2a09b17ad5d1b3ed.js +1 -0
  172. veadk/cli/studio/web/_next/static/chunks/4852.cac6e9c5032df796.js +1 -0
  173. veadk/cli/studio/web/_next/static/chunks/4860.94324451a00fadc0.js +1 -0
  174. veadk/cli/studio/web/_next/static/chunks/4869.091903cb36ad77ad.js +1 -0
  175. veadk/cli/studio/web/_next/static/chunks/4888.e248e212b002f5df.js +1 -0
  176. veadk/cli/studio/web/_next/static/chunks/492.ac958937dd36300f.js +1 -0
  177. veadk/cli/studio/web/_next/static/chunks/4958.85e0dbc8b2319776.js +1 -0
  178. veadk/cli/studio/web/_next/static/chunks/4968.1477e29640b2deb8.js +1 -0
  179. veadk/cli/studio/web/_next/static/chunks/4980.1300ab7d9c76e523.js +1 -0
  180. veadk/cli/studio/web/_next/static/chunks/4aa6d3c9.dade76a8ff4112d3.js +1 -0
  181. veadk/cli/studio/web/_next/static/chunks/5006.8ee1d611f529da11.js +1 -0
  182. veadk/cli/studio/web/_next/static/chunks/5018.c34d2a9f82e24c51.js +1 -0
  183. veadk/cli/studio/web/_next/static/chunks/5050.c06b2d8e12720555.js +1 -0
  184. veadk/cli/studio/web/_next/static/chunks/5084.9b554002148843ea.js +1 -0
  185. veadk/cli/studio/web/_next/static/chunks/5097.2e9a097ccfb70707.js +1 -0
  186. veadk/cli/studio/web/_next/static/chunks/5113.fa5291624248676b.js +1 -0
  187. veadk/cli/studio/web/_next/static/chunks/5115.ff49cf5e2be16db4.js +1 -0
  188. veadk/cli/studio/web/_next/static/chunks/521.98b7995e15b59075.js +1 -0
  189. veadk/cli/studio/web/_next/static/chunks/5213.1a7618fcae8c5282.js +1 -0
  190. veadk/cli/studio/web/_next/static/chunks/522.56063fbcf9aa8699.js +1 -0
  191. veadk/cli/studio/web/_next/static/chunks/5247.b304f94eb3132618.js +1 -0
  192. veadk/cli/studio/web/_next/static/chunks/5248.f9faaff2f0d7631f.js +1 -0
  193. veadk/cli/studio/web/_next/static/chunks/527-1c65afbb202752bd.js +1 -0
  194. veadk/cli/studio/web/_next/static/chunks/529.7d231c2076b6d77a.js +1 -0
  195. veadk/cli/studio/web/_next/static/chunks/5305.9323b5f7efaa005e.js +1 -0
  196. veadk/cli/studio/web/_next/static/chunks/5317.fce75000492e9db4.js +1 -0
  197. veadk/cli/studio/web/_next/static/chunks/5326.3be5b04850f0a2f2.js +1 -0
  198. veadk/cli/studio/web/_next/static/chunks/5329.415b43aacdd9a471.js +1 -0
  199. veadk/cli/studio/web/_next/static/chunks/5331.77f0493c99857944.js +1 -0
  200. veadk/cli/studio/web/_next/static/chunks/5341.1fff90ab37947f62.js +1 -0
  201. veadk/cli/studio/web/_next/static/chunks/541.04d938e895b7f678.js +1 -0
  202. veadk/cli/studio/web/_next/static/chunks/5428.fa789e4b0d61cd0d.js +1 -0
  203. veadk/cli/studio/web/_next/static/chunks/5460.cee07b9411c5c5ca.js +1 -0
  204. veadk/cli/studio/web/_next/static/chunks/5472.f645717ad2edd28f.js +1 -0
  205. veadk/cli/studio/web/_next/static/chunks/5503.75093ef3870b655f.js +1 -0
  206. veadk/cli/studio/web/_next/static/chunks/5567.44555d5da6ed19b7.js +1 -0
  207. veadk/cli/studio/web/_next/static/chunks/5572.3c35c26a4867ca56.js +1 -0
  208. veadk/cli/studio/web/_next/static/chunks/5579.b3be6028d1833118.js +1 -0
  209. veadk/cli/studio/web/_next/static/chunks/5631.b8a2c0dc65737269.js +1 -0
  210. veadk/cli/studio/web/_next/static/chunks/5656.b743b6ab9a61eec0.js +1 -0
  211. veadk/cli/studio/web/_next/static/chunks/5677.c063822912e55a25.js +1 -0
  212. veadk/cli/studio/web/_next/static/chunks/5779.0b1a3c7d1c018a1d.js +1 -0
  213. veadk/cli/studio/web/_next/static/chunks/5817.ae1fb69a154fbf4c.js +1 -0
  214. veadk/cli/studio/web/_next/static/chunks/5860.7154866a5d2dd82f.js +1 -0
  215. veadk/cli/studio/web/_next/static/chunks/5865.645e44e8e171ba9f.js +1 -0
  216. veadk/cli/studio/web/_next/static/chunks/5906.30cce16ed88f920a.js +1 -0
  217. veadk/cli/studio/web/_next/static/chunks/5942.cd6dfaad76581849.js +1 -0
  218. veadk/cli/studio/web/_next/static/chunks/5958.e2f981fa3cba5d99.js +1 -0
  219. veadk/cli/studio/web/_next/static/chunks/60f90b65.d526f39688baa769.js +1 -0
  220. veadk/cli/studio/web/_next/static/chunks/6128.3da302fb50769250.js +1 -0
  221. veadk/cli/studio/web/_next/static/chunks/62.5408e55d383a8078.js +1 -0
  222. veadk/cli/studio/web/_next/static/chunks/624.7c7198473a8877d8.js +1 -0
  223. veadk/cli/studio/web/_next/static/chunks/6264.e7bdd878d9e7a249.js +1 -0
  224. veadk/cli/studio/web/_next/static/chunks/6266.97409ca00a3c32d9.js +1 -0
  225. veadk/cli/studio/web/_next/static/chunks/6269.668be917daafccaa.js +1 -0
  226. veadk/cli/studio/web/_next/static/chunks/630.87a6f22ac3e8956b.js +1 -0
  227. veadk/cli/studio/web/_next/static/chunks/6341.35afa02112051be8.js +1 -0
  228. veadk/cli/studio/web/_next/static/chunks/6353.93869a804ffe525b.js +1 -0
  229. veadk/cli/studio/web/_next/static/chunks/6375.46d2897cb2526abd.js +1 -0
  230. veadk/cli/studio/web/_next/static/chunks/6395.f113970ceec6ba91.js +1 -0
  231. veadk/cli/studio/web/_next/static/chunks/63d31579-18fb2181524a9c6f.js +1 -0
  232. veadk/cli/studio/web/_next/static/chunks/6423.d4cf9eb5b2ae6336.js +1 -0
  233. veadk/cli/studio/web/_next/static/chunks/6437.5eeaa7320bce1872.js +1 -0
  234. veadk/cli/studio/web/_next/static/chunks/6438.1c8486cc62da4117.js +1 -0
  235. veadk/cli/studio/web/_next/static/chunks/6451.f56cce0a07138982.js +1 -0
  236. veadk/cli/studio/web/_next/static/chunks/6456.f263b33ea51e4f54.js +1 -0
  237. veadk/cli/studio/web/_next/static/chunks/6504.0e6ae8d5bb987be6.js +1 -0
  238. veadk/cli/studio/web/_next/static/chunks/6560.b08504c0d99d71d4.js +1 -0
  239. veadk/cli/studio/web/_next/static/chunks/6563.e6d3bdba9860590d.js +1 -0
  240. veadk/cli/studio/web/_next/static/chunks/6621.639e4057d9c15bea.js +1 -0
  241. veadk/cli/studio/web/_next/static/chunks/6625.c0233245d2c1ef25.js +1 -0
  242. veadk/cli/studio/web/_next/static/chunks/6641.5487a2d68b0c52f2.js +1 -0
  243. veadk/cli/studio/web/_next/static/chunks/6644.74de9f2de2dc75f5.js +1 -0
  244. veadk/cli/studio/web/_next/static/chunks/6730.aac5bd02aab8258f.js +1 -0
  245. veadk/cli/studio/web/_next/static/chunks/6824.8c40dbd3eb390403.js +1 -0
  246. veadk/cli/studio/web/_next/static/chunks/6831.74b4a9b75f4ff9d1.js +1 -0
  247. veadk/cli/studio/web/_next/static/chunks/688.9a27292bd19bc993.js +1 -0
  248. veadk/cli/studio/web/_next/static/chunks/6899.ac4207b9a778bd0e.js +1 -0
  249. veadk/cli/studio/web/_next/static/chunks/6901.4755ed550912589c.js +1 -0
  250. veadk/cli/studio/web/_next/static/chunks/6910.5d45b17e287dba94.js +1 -0
  251. veadk/cli/studio/web/_next/static/chunks/6928.d0a540480df90930.js +1 -0
  252. veadk/cli/studio/web/_next/static/chunks/6958.c58e8e991b201429.js +1 -0
  253. veadk/cli/studio/web/_next/static/chunks/6d60d248-1bbd761ee88ab2e4.js +1 -0
  254. veadk/cli/studio/web/_next/static/chunks/70207789-862965aac548ab2a.js +1 -0
  255. veadk/cli/studio/web/_next/static/chunks/7046.60a892c1e506cf5f.js +1 -0
  256. veadk/cli/studio/web/_next/static/chunks/7068.6639b51e828de233.js +1 -0
  257. veadk/cli/studio/web/_next/static/chunks/7172.aeda2e49d81fc0fd.js +1 -0
  258. veadk/cli/studio/web/_next/static/chunks/7185.0210768f3918ec41.js +1 -0
  259. veadk/cli/studio/web/_next/static/chunks/7200.86e672d8e2c1a920.js +1 -0
  260. veadk/cli/studio/web/_next/static/chunks/730.2c5e46bf8fd29fcc.js +1 -0
  261. veadk/cli/studio/web/_next/static/chunks/7301.43929cd9c2a5d2ea.js +1 -0
  262. veadk/cli/studio/web/_next/static/chunks/7335.68692b193fa0dff6.js +1 -0
  263. veadk/cli/studio/web/_next/static/chunks/7412.98554f6ee574e288.js +1 -0
  264. veadk/cli/studio/web/_next/static/chunks/7422.e4a69fce6694ba90.js +1 -0
  265. veadk/cli/studio/web/_next/static/chunks/7448.63e7b8d5fd090bd1.js +1 -0
  266. veadk/cli/studio/web/_next/static/chunks/7479.97f696c6ada04b29.js +1 -0
  267. veadk/cli/studio/web/_next/static/chunks/7482.ab6a217c34f6934a.js +1 -0
  268. veadk/cli/studio/web/_next/static/chunks/7484.b91675bd38b250f8.js +1 -0
  269. veadk/cli/studio/web/_next/static/chunks/7522.84dac217ae0701ac.js +1 -0
  270. veadk/cli/studio/web/_next/static/chunks/7540-38c13446d29f43f2.js +1 -0
  271. veadk/cli/studio/web/_next/static/chunks/7556.ae47807e378de233.js +1 -0
  272. veadk/cli/studio/web/_next/static/chunks/761.2ce77249f8d3a1ce.js +1 -0
  273. veadk/cli/studio/web/_next/static/chunks/7678.ceea70830f2dd7ff.js +1 -0
  274. veadk/cli/studio/web/_next/static/chunks/7684.c43e4b5ad1f9b0af.js +1 -0
  275. veadk/cli/studio/web/_next/static/chunks/7698.44201098b212aee8.js +1 -0
  276. veadk/cli/studio/web/_next/static/chunks/76ff44ea.8322bdedaee78e2d.js +1 -0
  277. veadk/cli/studio/web/_next/static/chunks/7725.b15cb8b6e1d15403.js +1 -0
  278. veadk/cli/studio/web/_next/static/chunks/7855.513a507852c649f2.js +1 -0
  279. veadk/cli/studio/web/_next/static/chunks/7910.266df3f992c16215.js +1 -0
  280. veadk/cli/studio/web/_next/static/chunks/7940.f490f3d5e6590e54.js +1 -0
  281. veadk/cli/studio/web/_next/static/chunks/7960.491bd15bef82755c.js +1 -0
  282. veadk/cli/studio/web/_next/static/chunks/8020.795778775ed5c387.js +1 -0
  283. veadk/cli/studio/web/_next/static/chunks/8107.fbb6017b3e909da5.js +1 -0
  284. veadk/cli/studio/web/_next/static/chunks/8169.4d7fd139784eb935.js +1 -0
  285. veadk/cli/studio/web/_next/static/chunks/8196.6c5c3dfe86e1c3ca.js +1 -0
  286. veadk/cli/studio/web/_next/static/chunks/8257.ee682bc2599473cb.js +1 -0
  287. veadk/cli/studio/web/_next/static/chunks/8305.d2c965e56fe9350c.js +1 -0
  288. veadk/cli/studio/web/_next/static/chunks/8324.8c3edcc756f5e2f3.js +1 -0
  289. veadk/cli/studio/web/_next/static/chunks/8388.cc59fb03d62a71cf.js +1 -0
  290. veadk/cli/studio/web/_next/static/chunks/8394.d5ca17ce8f6fffb0.js +1 -0
  291. veadk/cli/studio/web/_next/static/chunks/8419.b11c64d18dc580b5.js +1 -0
  292. veadk/cli/studio/web/_next/static/chunks/8478.5f4272ae9afa4061.js +1 -0
  293. veadk/cli/studio/web/_next/static/chunks/8480.a071150cb4eddc29.js +1 -0
  294. veadk/cli/studio/web/_next/static/chunks/8535.0ab856b7bf0e161b.js +1 -0
  295. veadk/cli/studio/web/_next/static/chunks/8571.8af7983b03c09f86.js +1 -0
  296. veadk/cli/studio/web/_next/static/chunks/8583.4afa8c68cb867b2d.js +1 -0
  297. veadk/cli/studio/web/_next/static/chunks/8601.520cbfc8abbfb5f8.js +1 -0
  298. veadk/cli/studio/web/_next/static/chunks/8656.5f8b6212d2b35257.js +1 -0
  299. veadk/cli/studio/web/_next/static/chunks/8665.7f24febc4a78ff5e.js +1 -0
  300. veadk/cli/studio/web/_next/static/chunks/8687.c94010eb559245b6.js +1 -0
  301. veadk/cli/studio/web/_next/static/chunks/8815.81a5c5700763ca02.js +1 -0
  302. veadk/cli/studio/web/_next/static/chunks/8878.28a43a5fe23f5bd0.js +1 -0
  303. veadk/cli/studio/web/_next/static/chunks/8884.e4e411c7978b2552.js +1 -0
  304. veadk/cli/studio/web/_next/static/chunks/8962.db5c7728bef5ff0b.js +1 -0
  305. veadk/cli/studio/web/_next/static/chunks/8984.dfcb15f115089c4a.js +1 -0
  306. veadk/cli/studio/web/_next/static/chunks/9022.d161e32a6b1bcc61.js +1 -0
  307. veadk/cli/studio/web/_next/static/chunks/9099.8ba5be825d17456a.js +1 -0
  308. veadk/cli/studio/web/_next/static/chunks/914.72991ff6c9332951.js +1 -0
  309. veadk/cli/studio/web/_next/static/chunks/9217.40b78a38cadcd268.js +1 -0
  310. veadk/cli/studio/web/_next/static/chunks/925.0cc74592f03b10e9.js +1 -0
  311. veadk/cli/studio/web/_next/static/chunks/9275.ac60c49c68c86e51.js +1 -0
  312. veadk/cli/studio/web/_next/static/chunks/92a17e6d.da4fba322f70cd46.js +1 -0
  313. veadk/cli/studio/web/_next/static/chunks/92b95f17.39f98387a9867b4a.js +1 -0
  314. veadk/cli/studio/web/_next/static/chunks/9361.d3535e4d87c1c527.js +1 -0
  315. veadk/cli/studio/web/_next/static/chunks/9433.55eb6e4ea7edb262.js +1 -0
  316. veadk/cli/studio/web/_next/static/chunks/9436.5b2462fa3ddebb27.js +1 -0
  317. veadk/cli/studio/web/_next/static/chunks/9445.e29312f685c22eff.js +1 -0
  318. veadk/cli/studio/web/_next/static/chunks/9471.646bdfb962cdd5c2.js +1 -0
  319. veadk/cli/studio/web/_next/static/chunks/9473.efa6db413edc23d1.js +1 -0
  320. veadk/cli/studio/web/_next/static/chunks/9484.e9f1cd4e3f8e75df.js +1 -0
  321. veadk/cli/studio/web/_next/static/chunks/9545.61026f3c11f914f2.js +1 -0
  322. veadk/cli/studio/web/_next/static/chunks/9555.287e4e4a50087d62.js +1 -0
  323. veadk/cli/studio/web/_next/static/chunks/963.da40bca273fb82c6.js +1 -0
  324. veadk/cli/studio/web/_next/static/chunks/9636.4d3678b9a4e0b46e.js +1 -0
  325. veadk/cli/studio/web/_next/static/chunks/9657.459d6300b0bc8ef8.js +1 -0
  326. veadk/cli/studio/web/_next/static/chunks/9676.cef4d87274c64417.js +1 -0
  327. veadk/cli/studio/web/_next/static/chunks/97.15df9ee2f6270421.js +1 -0
  328. veadk/cli/studio/web/_next/static/chunks/9754.76a3ea33dc0e9a07.js +1 -0
  329. veadk/cli/studio/web/_next/static/chunks/9790.7e01549d70279760.js +1 -0
  330. veadk/cli/studio/web/_next/static/chunks/9871.994068e90ef076a5.js +1 -0
  331. veadk/cli/studio/web/_next/static/chunks/9887.0fbd7c3721a3c1d1.js +1 -0
  332. veadk/cli/studio/web/_next/static/chunks/9923.14c88b64d7749eaa.js +1 -0
  333. veadk/cli/studio/web/_next/static/chunks/997.193727d4b2eede68.js +1 -0
  334. veadk/cli/studio/web/_next/static/chunks/9971.36f503837f73d3c2.js +1 -0
  335. veadk/cli/studio/web/_next/static/chunks/9976.ab4ec59ede08f398.js +1 -0
  336. veadk/cli/studio/web/_next/static/chunks/9990.13e025853b0250b6.js +1 -0
  337. veadk/cli/studio/web/_next/static/chunks/9997.a844d058b46bb680.js +1 -0
  338. veadk/cli/studio/web/_next/static/chunks/app/_not-found/page-ce05b36a67c37396.js +1 -0
  339. veadk/cli/studio/web/_next/static/chunks/app/layout-b0d50d105c55fd6d.js +1 -0
  340. veadk/cli/studio/web/_next/static/chunks/app/page-7b51d29c96f44f61.js +1 -0
  341. veadk/cli/studio/web/_next/static/chunks/app/run/page-c2cd4dca690d6d29.js +1 -0
  342. veadk/cli/studio/web/_next/static/chunks/c06218ab.b1da50a91b579a52.js +1 -0
  343. veadk/cli/studio/web/_next/static/chunks/c911d7bd.bcca2e3dda67a7a6.js +1 -0
  344. veadk/cli/studio/web/_next/static/chunks/d386b14e.c746c93eac03a58e.js +1 -0
  345. veadk/cli/studio/web/_next/static/chunks/e925550e.ff706051f5223d26.js +1 -0
  346. veadk/cli/studio/web/_next/static/chunks/fc645be4-662fd2da08676daa.js +1 -0
  347. veadk/cli/studio/web/_next/static/chunks/framework-2b8e4864be10152d.js +1 -0
  348. veadk/cli/studio/web/_next/static/chunks/main-33072985ea766514.js +1 -0
  349. veadk/cli/studio/web/_next/static/chunks/main-app-4a8ccba13aa7606b.js +1 -0
  350. veadk/cli/studio/web/_next/static/chunks/pages/_app-c0ae3ec92f260128.js +1 -0
  351. veadk/cli/studio/web/_next/static/chunks/pages/_error-899a04d491d7df58.js +1 -0
  352. veadk/cli/studio/web/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  353. veadk/cli/studio/web/_next/static/chunks/webpack-14afc8861a1fe293.js +1 -0
  354. veadk/cli/studio/web/_next/static/css/366cfdd7fdd8bcac.css +1 -0
  355. veadk/cli/studio/web/_next/static/gvLvin_lQcpkhQupQqPu1/_buildManifest.js +1 -0
  356. veadk/cli/studio/web/_next/static/gvLvin_lQcpkhQupQqPu1/_ssgManifest.js +1 -0
  357. veadk/cli/studio/web/_next/static/media/569ce4b8f30dc480-s.p.woff2 +0 -0
  358. veadk/cli/studio/web/_next/static/media/747892c23ea88013-s.woff2 +0 -0
  359. veadk/cli/studio/web/_next/static/media/8d697b304b401681-s.woff2 +0 -0
  360. veadk/cli/studio/web/_next/static/media/93f479601ee12b01-s.p.woff2 +0 -0
  361. veadk/cli/studio/web/_next/static/media/9610d9e46709d722-s.woff2 +0 -0
  362. veadk/cli/studio/web/_next/static/media/ba015fad6dcf6784-s.woff2 +0 -0
  363. veadk/cli/studio/web/favicon.ico +0 -0
  364. veadk/cli/studio/web/file.svg +1 -0
  365. veadk/cli/studio/web/globe.svg +1 -0
  366. veadk/cli/studio/web/index.html +1 -0
  367. veadk/cli/studio/web/index.txt +43 -0
  368. veadk/cli/studio/web/next.svg +1 -0
  369. veadk/cli/studio/web/run.html +1 -0
  370. veadk/cli/studio/web/run.txt +44 -0
  371. veadk/cli/studio/web/veadk-logo.png +0 -0
  372. veadk/cli/studio/web/vercel.svg +1 -0
  373. veadk/cli/studio/web/window.svg +1 -0
  374. veadk/cloud/__pycache__/__init__.cpython-310.pyc +0 -0
  375. veadk/cloud/__pycache__/cloud_agent_engine.cpython-310.pyc +0 -0
  376. veadk/cloud/__pycache__/cloud_app.cpython-310.pyc +0 -0
  377. veadk/cloud/cloud_agent_engine.py +104 -43
  378. veadk/cloud/cloud_app.py +82 -14
  379. veadk/database/__pycache__/__init__.cpython-310.pyc +0 -0
  380. veadk/database/__pycache__/base_database.cpython-310.pyc +0 -0
  381. veadk/database/__pycache__/database_adapter.cpython-310.pyc +0 -0
  382. veadk/database/__pycache__/database_factory.cpython-310.pyc +0 -0
  383. veadk/database/__pycache__/local_database.cpython-310.pyc +0 -0
  384. veadk/database/database_adapter.py +280 -0
  385. veadk/database/database_factory.py +3 -3
  386. veadk/database/kv/__pycache__/__init__.cpython-310.pyc +0 -0
  387. veadk/database/relational/__pycache__/__init__.cpython-310.pyc +0 -0
  388. veadk/database/vector/__pycache__/__init__.cpython-310.pyc +0 -0
  389. veadk/database/vector/__pycache__/opensearch_vector_database.cpython-310.pyc +0 -0
  390. veadk/database/vector/__pycache__/type.cpython-310.pyc +0 -0
  391. veadk/database/vector/opensearch_vector_database.py +50 -2
  392. veadk/database/viking/__pycache__/__init__.cpython-310.pyc +0 -0
  393. veadk/database/viking/viking_database.py +24 -6
  394. veadk/database/viking/viking_memory_db.py +26 -22
  395. veadk/evaluation/__pycache__/__init__.cpython-310.pyc +0 -0
  396. veadk/evaluation/__pycache__/base_evaluator.cpython-310.pyc +0 -0
  397. veadk/evaluation/__pycache__/eval_set_file_loader.cpython-310.pyc +0 -0
  398. veadk/evaluation/__pycache__/eval_set_recorder.cpython-310.pyc +0 -0
  399. veadk/evaluation/__pycache__/types.cpython-310.pyc +0 -0
  400. veadk/evaluation/adk_evaluator/__pycache__/__init__.cpython-310.pyc +0 -0
  401. veadk/evaluation/base_evaluator.py +130 -3
  402. veadk/evaluation/deepeval_evaluator/__pycache__/__init__.cpython-310.pyc +0 -0
  403. veadk/evaluation/deepeval_evaluator/__pycache__/deepeval_evaluator.cpython-310.pyc +0 -0
  404. veadk/evaluation/deepeval_evaluator/deepeval_evaluator.py +14 -25
  405. veadk/evaluation/types.py +33 -0
  406. veadk/evaluation/utils/__pycache__/prometheus.cpython-310.pyc +0 -0
  407. veadk/evaluation/utils/prometheus.py +19 -23
  408. veadk/knowledgebase/__pycache__/__init__.cpython-310.pyc +0 -0
  409. veadk/knowledgebase/__pycache__/knowledgebase.cpython-310.pyc +0 -0
  410. veadk/knowledgebase/__pycache__/knowledgebase_database_adapter.cpython-310.pyc +0 -0
  411. veadk/knowledgebase/knowledgebase.py +30 -29
  412. veadk/memory/__pycache__/__init__.cpython-310.pyc +0 -0
  413. veadk/memory/__pycache__/long_term_memory.cpython-310.pyc +0 -0
  414. veadk/memory/__pycache__/memory_database_adapter.cpython-310.pyc +0 -0
  415. veadk/memory/__pycache__/short_term_memory.cpython-310.pyc +0 -0
  416. veadk/memory/__pycache__/short_term_memory_processor.cpython-310.pyc +0 -0
  417. veadk/memory/long_term_memory.py +73 -37
  418. veadk/prompts/__pycache__/__init__.cpython-310.pyc +0 -0
  419. veadk/prompts/__pycache__/agent_default_prompt.cpython-310.pyc +0 -0
  420. veadk/prompts/__pycache__/prompt_memory_processor.cpython-310.pyc +0 -0
  421. veadk/prompts/__pycache__/prompt_optimization.cpython-310.pyc +0 -0
  422. veadk/runner.py +4 -0
  423. veadk/tools/__pycache__/__init__.cpython-310.pyc +0 -0
  424. veadk/tools/__pycache__/demo_tools.cpython-310.pyc +0 -0
  425. veadk/tools/__pycache__/load_knowledgebase_tool.cpython-310.pyc +0 -0
  426. veadk/tools/builtin_tools/__pycache__/__init__.cpython-310.pyc +0 -0
  427. veadk/tools/builtin_tools/__pycache__/lark.cpython-310.pyc +0 -0
  428. veadk/tools/builtin_tools/__pycache__/web_search.cpython-310.pyc +0 -0
  429. veadk/tools/builtin_tools/las.py +3 -2
  430. veadk/{cloud/template/app.py → tools/builtin_tools/mcp_router.py} +5 -13
  431. veadk/tools/load_knowledgebase_tool.py +3 -5
  432. veadk/tools/sandbox/__pycache__/__init__.cpython-310.pyc +0 -0
  433. veadk/tracing/__pycache__/__init__.cpython-310.pyc +0 -0
  434. veadk/tracing/__pycache__/base_tracer.cpython-310.pyc +0 -0
  435. veadk/tracing/base_tracer.py +44 -3
  436. veadk/tracing/telemetry/__pycache__/__init__.cpython-310.pyc +0 -0
  437. veadk/tracing/telemetry/__pycache__/opentelemetry_tracer.cpython-310.pyc +0 -0
  438. veadk/tracing/telemetry/exporters/__pycache__/__init__.cpython-310.pyc +0 -0
  439. veadk/tracing/telemetry/exporters/__pycache__/apiserver_exporter.cpython-310.pyc +0 -0
  440. veadk/tracing/telemetry/exporters/__pycache__/apmplus_exporter.cpython-310.pyc +0 -0
  441. veadk/tracing/telemetry/exporters/__pycache__/base_exporter.cpython-310.pyc +0 -0
  442. veadk/tracing/telemetry/exporters/__pycache__/cozeloop_exporter.cpython-310.pyc +0 -0
  443. veadk/tracing/telemetry/exporters/__pycache__/inmemory_exporter.cpython-310.pyc +0 -0
  444. veadk/tracing/telemetry/exporters/__pycache__/tls_exporter.cpython-310.pyc +0 -0
  445. veadk/tracing/telemetry/metrics/__pycache__/__init__.cpython-310.pyc +0 -0
  446. veadk/tracing/telemetry/metrics/__pycache__/opentelemetry_metrics.cpython-310.pyc +0 -0
  447. veadk/tracing/telemetry/opentelemetry_tracer.py +55 -13
  448. veadk/utils/__pycache__/__init__.cpython-310.pyc +0 -0
  449. veadk/utils/__pycache__/logger.cpython-310.pyc +0 -0
  450. veadk/utils/__pycache__/mcp_utils.cpython-310.pyc +0 -0
  451. veadk/utils/__pycache__/misc.cpython-310.pyc +0 -0
  452. veadk/utils/__pycache__/patches.cpython-310.pyc +0 -0
  453. veadk/utils/__pycache__/volcengine_sign.cpython-310.pyc +0 -0
  454. veadk/utils/mcp_utils.py +44 -0
  455. veadk/version.py +1 -1
  456. {veadk_python-0.1.0.dist-info → veadk_python-0.2.0.dist-info}/METADATA +14 -5
  457. veadk_python-0.2.0.dist-info/RECORD +534 -0
  458. veadk/cli/services/vefaas/template/src/config.py +0 -58
  459. veadk/cli/studio/agent_processor.py +0 -247
  460. veadk/cli/studio/model.py +0 -116
  461. veadk/cloud/template/config.py +0 -55
  462. veadk/knowledgebase/knowledgebase_database_adapter.py +0 -259
  463. veadk/memory/memory_database_adapter.py +0 -235
  464. veadk_python-0.1.0.dist-info/RECORD +0 -110
  465. {veadk_python-0.1.0.dist-info → veadk_python-0.2.0.dist-info}/WHEEL +0 -0
  466. {veadk_python-0.1.0.dist-info → veadk_python-0.2.0.dist-info}/entry_points.txt +0 -0
  467. {veadk_python-0.1.0.dist-info → veadk_python-0.2.0.dist-info}/licenses/LICENSE +0 -0
  468. {veadk_python-0.1.0.dist-info → veadk_python-0.2.0.dist-info}/top_level.txt +0 -0
@@ -14,28 +14,36 @@
14
14
 
15
15
  from typing import BinaryIO, Literal, TextIO
16
16
 
17
+ from veadk.database.database_adapter import get_knowledgebase_database_adapter
17
18
  from veadk.database.database_factory import DatabaseFactory
18
19
  from veadk.utils.logger import get_logger
19
20
 
20
- from .knowledgebase_database_adapter import get_knowledgebase_adapter
21
-
22
21
  logger = get_logger(__name__)
23
22
 
24
23
 
24
+ def build_knowledgebase_index(app_name: str):
25
+ return f"veadk_kb_{app_name}"
26
+
27
+
25
28
  class KnowledgeBase:
26
29
  def __init__(
27
30
  self,
28
31
  backend: Literal["local", "opensearch", "viking", "redis", "mysql"] = "local",
29
- top_k: int = 5,
32
+ top_k: int = 10,
30
33
  db_config=None,
31
34
  ):
32
- logger.debug(f"Create knowledgebase, backend is {backend}")
35
+ logger.info(
36
+ f"Initializing knowledgebase: backend={backend} top_k={top_k} db_config={db_config}"
37
+ )
38
+
33
39
  self.backend = backend
34
40
  self.top_k = top_k
35
41
 
36
42
  self.db_client = DatabaseFactory.create(backend=backend, config=db_config)
37
- self.adapter = get_knowledgebase_adapter(backend)(
38
- database_client=self.db_client
43
+ self.adapter = get_knowledgebase_database_adapter(self.db_client)
44
+
45
+ logger.info(
46
+ f"Initialized knowledgebase: db_client={self.db_client} adapter={self.adapter}"
39
47
  )
40
48
 
41
49
  def add(
@@ -46,38 +54,31 @@ class KnowledgeBase:
46
54
  ):
47
55
  """
48
56
  Add documents to the vector database.
49
- You can only upload files or file characters when the adapter type you use is vikingdb.
57
+ You can only upload files or file characters when the adapter type used is vikingdb.
50
58
  In addition, if you upload data of the bytes type,
51
59
  for example, if you read the file stream of a pdf, then you need to pass an additional parameter file_ext = '.pdf'.
52
60
  """
53
- kwargs.pop("session_id", None) # remove session_id
54
- self.adapter.add(
55
- data, app_name, user_id="user_id", session_id="session_id", **kwargs
56
- )
61
+ if self.backend != "viking" and not (
62
+ isinstance(data, str) or isinstance(data, list)
63
+ ):
64
+ raise ValueError(
65
+ "Only vikingdb supports uploading files or file characters."
66
+ )
57
67
 
58
- def search(self, query: str, app_name: str, top_k: int = None) -> list[str]:
59
- """Retrieve documents similar to the query text in the vector database.
68
+ index = build_knowledgebase_index(app_name)
60
69
 
61
- Args:
62
- query (str): The query text to be retrieved (e.g., "Who proposed the Turing machine model?")
70
+ logger.info(f"Adding documents to knowledgebase: index={index}")
63
71
 
64
- Returns:
65
- list[str]: A list of the top most similar document contents retrieved (sorted by vector similarity)
66
- """
72
+ self.adapter.add(data=data, index=index)
73
+
74
+ def search(self, query: str, app_name: str, top_k: int = None) -> list[str]:
67
75
  top_k = self.top_k if top_k is None else top_k
68
76
 
69
- result = self.adapter.query(
70
- query=query, app_name=app_name, user_id="user_id", top_k=top_k
77
+ logger.info(
78
+ f"Searching knowledgebase: app_name={app_name} query={query} top_k={top_k}"
71
79
  )
80
+ index = build_knowledgebase_index(app_name)
81
+ result = self.adapter.query(query=query, index=index, top_k=top_k)
72
82
  if len(result) == 0:
73
83
  logger.warning(f"No documents found in knowledgebase. Query: {query}")
74
84
  return result
75
-
76
- def delete(self, app_name: str, user_id: str, session_id: str):
77
- """Delete documents in the vector database.
78
- Args:
79
- app_name (str): The name of the application
80
- user_id (str): The user ID
81
- session_id (str): The session ID
82
- """
83
- self.adapter.delete(app_name=app_name, user_id=user_id, session_id=session_id)
@@ -16,6 +16,7 @@
16
16
  import json
17
17
  from typing import Literal
18
18
 
19
+ from google.adk.events.event import Event
19
20
  from google.adk.memory.base_memory_service import (
20
21
  BaseMemoryService,
21
22
  SearchMemoryResponse,
@@ -25,67 +26,103 @@ from google.adk.sessions import Session
25
26
  from google.genai import types
26
27
  from typing_extensions import override
27
28
 
28
- from veadk.config import getenv
29
29
  from veadk.database import DatabaseFactory
30
+ from veadk.database.database_adapter import get_long_term_memory_database_adapter
30
31
  from veadk.utils.logger import get_logger
31
32
 
32
- from .memory_database_adapter import get_memory_adapter
33
-
34
33
  logger = get_logger(__name__)
35
34
 
36
35
 
36
+ def build_long_term_memory_index(app_name: str, user_id: str):
37
+ return f"{app_name}_{user_id}"
38
+
39
+
37
40
  class LongTermMemory(BaseMemoryService):
38
41
  def __init__(
39
42
  self,
40
43
  backend: Literal[
41
44
  "local", "opensearch", "redis", "mysql", "viking"
42
45
  ] = "opensearch",
43
- top_k: int = getenv("LONGTERM_MEMORY_TOP_K", 3),
46
+ top_k: int = 5,
44
47
  ):
45
48
  if backend == "viking":
46
49
  backend = "viking_mem"
47
50
  self.top_k = top_k
48
51
  self.backend = backend
49
52
 
53
+ logger.info(
54
+ f"Initializing long term memory: backend={self.backend} top_k={self.top_k}"
55
+ )
56
+
50
57
  self.db_client = DatabaseFactory.create(
51
58
  backend=backend,
52
59
  )
53
- logger.info(f"Long term memory backend is `{backend}`.")
60
+ self.adapter = get_long_term_memory_database_adapter(self.db_client)
61
+
62
+ logger.info(
63
+ f"Initialized long term memory: db_client={self.db_client} adapter={self.adapter}"
64
+ )
65
+
66
+ def _filter_and_convert_events(self, events: list[Event]) -> list[str]:
67
+ final_events = []
68
+ for event in events:
69
+ # filter: bad event
70
+ if not event.content or not event.content.parts:
71
+ continue
72
+
73
+ # filter: only add user event to memory to enhance retrieve performance
74
+ if not event.author == "user":
75
+ continue
76
+
77
+ # filter: discard function call and function response
78
+ if not event.content.parts[0].text:
79
+ continue
80
+
81
+ # convert: to string-format for storage
82
+ message = event.content.model_dump(exclude_none=True, mode="json")
54
83
 
55
- self.adapter = get_memory_adapter(backend)(database_client=self.db_client)
84
+ final_events.append(json.dumps(message, ensure_ascii=False))
85
+ return final_events
56
86
 
57
87
  @override
58
88
  async def add_session_to_memory(
59
89
  self,
60
90
  session: Session,
61
91
  ):
62
- event_list = []
63
- for event in session.events:
64
- if not event.content or not event.content.parts:
65
- continue
92
+ event_strings = self._filter_and_convert_events(session.events)
93
+ index = build_long_term_memory_index(session.app_name, session.user_id)
66
94
 
67
- message = event.content.model_dump(exclude_none=True, mode="json")
68
- if (
69
- "text" not in message["parts"][0]
70
- ): # remove function_call & function_resp
71
- continue
72
- event_list.append(json.dumps(message))
73
- self.adapter.add(
74
- event_list,
75
- app_name=session.app_name,
76
- user_id=session.user_id,
77
- session_id=session.id,
95
+ logger.info(
96
+ f"Adding {len(event_strings)} events to long term memory: index={index}"
97
+ )
98
+
99
+ # check if viking memory database, should give a user id: if/else
100
+ if self.backend == "viking_mem":
101
+ self.adapter.add(data=event_strings, index=index, user_id=session.user_id)
102
+ else:
103
+ self.adapter.add(data=event_strings, index=index)
104
+
105
+ logger.info(
106
+ f"Added {len(event_strings)} events to long term memory: index={index}"
78
107
  )
79
108
 
80
109
  @override
81
110
  async def search_memory(self, *, app_name: str, user_id: str, query: str):
82
- memory_chunks = self.adapter.query(
83
- query=query,
84
- app_name=app_name,
85
- user_id=user_id,
111
+ index = build_long_term_memory_index(app_name, user_id)
112
+
113
+ logger.info(
114
+ f"Searching long term memory: query={query} index={index} top_k={self.top_k}"
86
115
  )
87
- if len(memory_chunks) == 0:
88
- return SearchMemoryResponse()
116
+
117
+ # user id if viking memory db
118
+ if self.backend == "viking_mem":
119
+ memory_chunks = self.adapter.query(
120
+ query=query, index=index, top_k=self.top_k, user_id=user_id
121
+ )
122
+ else:
123
+ memory_chunks = self.adapter.query(
124
+ query=query, index=index, top_k=self.top_k
125
+ )
89
126
 
90
127
  memory_events = []
91
128
  for memory in memory_chunks:
@@ -94,26 +131,25 @@ class LongTermMemory(BaseMemoryService):
94
131
  try:
95
132
  text = memory_dict["parts"][0]["text"]
96
133
  role = memory_dict["role"]
97
- except KeyError as e:
98
- logger.error(
99
- f"Memory content: {memory_dict}. Error parsing memory: {e}"
134
+ except KeyError as _:
135
+ # prevent not a standard text-based event
136
+ logger.warning(
137
+ f"Memory content: {memory_dict}. Skip return this memory."
100
138
  )
101
139
  continue
102
140
  except json.JSONDecodeError:
141
+ # prevent the memory string is not dumped by `Event` class
103
142
  text = memory
104
143
  role = "user"
144
+
105
145
  memory_events.append(
106
146
  MemoryEntry(
107
147
  author="user",
108
148
  content=types.Content(parts=[types.Part(text=text)], role=role),
109
149
  )
110
150
  )
111
- return SearchMemoryResponse(memories=memory_events)
112
151
 
113
- @override
114
- async def delete_memory(self, *, app_name: str, user_id: str):
115
- self.adapter.delete(
116
- app_name=app_name,
117
- user_id=user_id,
118
- session_id="", # session_id is not used in the adapter delete method
152
+ logger.info(
153
+ f"Return {len(memory_events)} memory events for query: {query} index={index}"
119
154
  )
155
+ return SearchMemoryResponse(memories=memory_events)
veadk/runner.py CHANGED
@@ -70,6 +70,10 @@ class Runner:
70
70
  memory_service=self.long_term_memory,
71
71
  )
72
72
 
73
+ if getattr(self.agent, "tracers", None):
74
+ for tracers in self.agent.tracers:
75
+ tracers.set_app_name(self.app_name)
76
+
73
77
  def _convert_messages(self, messages) -> list:
74
78
  if isinstance(messages, str):
75
79
  messages = [types.Content(role="user", parts=[types.Part(text=messages)])]
@@ -12,12 +12,13 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset, SseConnectionParams
15
+ from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset
16
16
 
17
17
  from veadk.config import getenv
18
+ from veadk.utils.mcp_utils import get_mcp_params
18
19
 
19
20
  url = getenv("TOOL_LAS_URL")
20
21
  dataset_id = getenv("TOOL_LAS_DATASET_ID")
21
22
 
22
23
 
23
- las = MCPToolset(connection_params=SseConnectionParams(url=url))
24
+ las = MCPToolset(connection_params=get_mcp_params(url=url))
@@ -12,19 +12,11 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- import os
15
+ from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset
16
16
 
17
- from config import AGENT, APP_NAME, SHORT_TERM_MEMORY, TRACERS
17
+ from veadk.config import getenv
18
+ from veadk.utils.mcp_utils import get_mcp_params
18
19
 
19
- from veadk.a2a.ve_a2a_server import init_app
20
+ url = getenv("TOOL_MCP_ROUTER_URL")
20
21
 
21
- SERVER_HOST = os.getenv("SERVER_HOST")
22
-
23
- AGENT.tracers = TRACERS
24
-
25
- app = init_app(
26
- server_url=SERVER_HOST,
27
- app_name=APP_NAME,
28
- agent=AGENT,
29
- short_term_memory=SHORT_TERM_MEMORY,
30
- )
22
+ mcp_router = MCPToolset(connection_params=get_mcp_params(url=url))
@@ -51,11 +51,11 @@ class SearchKnowledgebaseResponse(BaseModel):
51
51
 
52
52
 
53
53
  async def search_knowledgebase(
54
- self, query: str, app_name: str, user_id: str
54
+ self, query: str, app_name: str
55
55
  ) -> SearchKnowledgebaseResponse:
56
56
  """Searches the knowledgebase of the current user."""
57
57
  if isinstance(knowledgebase, KnowledgeBase):
58
- res = knowledgebase.search(query, app_name=app_name, user_id=user_id)
58
+ res = knowledgebase.search(query, app_name=app_name)
59
59
  entry_list = []
60
60
  for r in res:
61
61
  entry_list.append(KnowledgebaseEntry(content=r))
@@ -86,9 +86,7 @@ async def load_knowledgebase(
86
86
  A list of knowledgebase results.
87
87
  """
88
88
  search_knowledgebase_response = await tool_context.search_knowledgebase(
89
- query,
90
- tool_context._invocation_context.app_name,
91
- tool_context._invocation_context.user_id,
89
+ query, tool_context._invocation_context.app_name
92
90
  )
93
91
  return LoadKnowledgebaseResponse(
94
92
  knowledges=search_knowledgebase_response.knowledges
@@ -14,10 +14,11 @@
14
14
 
15
15
  import json
16
16
  from abc import ABC, abstractmethod
17
- from typing import Optional
17
+ from typing import Optional, Any
18
18
 
19
19
  from google.adk.agents.callback_context import CallbackContext
20
20
  from google.adk.models import LlmRequest, LlmResponse
21
+ from google.adk.tools import BaseTool, ToolContext
21
22
  from opentelemetry import trace
22
23
 
23
24
  from veadk.utils.logger import get_logger
@@ -27,20 +28,24 @@ logger = get_logger(__name__)
27
28
 
28
29
  class BaseTracer(ABC):
29
30
  def __init__(self, name: str):
31
+ self.app_name = "veadk_app_name"
30
32
  pass
31
33
 
32
34
  @abstractmethod
33
35
  def dump(self) -> str: ...
34
36
 
35
- def llm_metrics_hook(
37
+ def tracer_hook_before_model(
36
38
  self, callback_context: CallbackContext, llm_request: LlmRequest
37
39
  ) -> Optional[LlmResponse]:
40
+ """agent run stage"""
38
41
  trace.get_tracer("gcp.vertex.agent")
39
42
  span = trace.get_current_span()
40
43
  # logger.debug(f"llm_request: {llm_request}")
41
44
 
42
45
  req = llm_request.model_dump()
43
46
 
47
+ app_name = getattr(self, "app_name", "veadk_app")
48
+ agent_name = callback_context.agent_name
44
49
  model_name = req.get("model", "unknown")
45
50
  max_tokens = (
46
51
  None
@@ -59,6 +64,8 @@ class BaseTracer(ABC):
59
64
  )
60
65
 
61
66
  attributes = {}
67
+ attributes["agent.name"] = agent_name
68
+ attributes["app.name"] = app_name
62
69
  attributes["gen_ai.system"] = "veadk"
63
70
  if model_name:
64
71
  attributes["gen_ai.request.model"] = model_name
@@ -84,9 +91,10 @@ class BaseTracer(ABC):
84
91
  for k, v in attributes.items():
85
92
  span.set_attribute(k, v)
86
93
 
87
- def token_metrics_hook(
94
+ def tracer_hook_after_model(
88
95
  self, callback_context: CallbackContext, llm_response: LlmResponse
89
96
  ) -> Optional[LlmResponse]:
97
+ """call llm stage"""
90
98
  trace.get_tracer("gcp.vertex.agent")
91
99
  span = trace.get_current_span()
92
100
  # logger.debug(f"llm_response: {llm_response}")
@@ -95,6 +103,10 @@ class BaseTracer(ABC):
95
103
  # Refined: collect all attributes, use set_attributes, print for debugging
96
104
  attributes = {}
97
105
 
106
+ app_name = getattr(self, "app_name", "veadk_app")
107
+ agent_name = callback_context.agent_name
108
+ attributes["agent.name"] = agent_name
109
+ attributes["app.name"] = app_name
98
110
  # prompt
99
111
  user_content = callback_context.user_content
100
112
  if getattr(user_content, "role", None):
@@ -170,3 +182,32 @@ class BaseTracer(ABC):
170
182
  # Fallback for OpenTelemetry versions without set_attributes
171
183
  for k, v in attributes.items():
172
184
  span.set_attribute(k, v)
185
+
186
+ def tracer_hook_after_tool(
187
+ self,
188
+ tool: BaseTool,
189
+ args: dict[str, Any],
190
+ tool_context: ToolContext,
191
+ tool_response: dict,
192
+ ):
193
+ trace.get_tracer("gcp.vertex.agent")
194
+ span = trace.get_current_span()
195
+ agent_name = tool_context.agent_name
196
+ tool_name = tool.name
197
+ app_name = getattr(self, "app_name", "veadk_app")
198
+ attributes = {
199
+ "agent.name": agent_name,
200
+ "app.name": app_name,
201
+ "tool.name": tool_name,
202
+ }
203
+
204
+ # Set all attributes at once if possible, else fallback to individual
205
+ if hasattr(span, "set_attributes"):
206
+ span.set_attributes(attributes)
207
+ else:
208
+ # Fallback for OpenTelemetry versions without set_attributes
209
+ for k, v in attributes.items():
210
+ span.set_attribute(k, v)
211
+
212
+ def set_app_name(self, app_name):
213
+ self.app_name = app_name
@@ -20,13 +20,17 @@ from typing import Any
20
20
 
21
21
  from openinference.instrumentation.google_adk import GoogleADKInstrumentor
22
22
  from opentelemetry.sdk import trace as trace_sdk
23
+ from opentelemetry import trace as trace_api
23
24
  from opentelemetry.sdk.resources import Resource
24
25
  from opentelemetry.sdk.trace import TracerProvider
26
+ from opentelemetry.sdk.trace.export import BatchSpanProcessor, SimpleSpanProcessor
27
+
25
28
  from pydantic import BaseModel, ConfigDict, Field
26
29
  from typing_extensions import override
27
30
 
28
31
  from veadk.tracing.base_tracer import BaseTracer
29
32
  from veadk.tracing.telemetry.exporters.apiserver_exporter import ApiServerExporter
33
+ from veadk.tracing.telemetry.exporters.apmplus_exporter import APMPlusExporter
30
34
  from veadk.tracing.telemetry.exporters.base_exporter import BaseExporter
31
35
  from veadk.tracing.telemetry.exporters.inmemory_exporter import InMemoryExporter
32
36
  from veadk.tracing.telemetry.metrics.opentelemetry_metrics import MeterUploader
@@ -51,18 +55,25 @@ class OpentelemetryTracer(BaseModel, BaseTracer):
51
55
  DEFAULT_VEADK_TRACER_NAME, description="The identifier of tracer."
52
56
  )
53
57
 
58
+ app_name: str = Field(
59
+ "veadk_app",
60
+ description="The identifier of app.",
61
+ )
62
+
54
63
  def model_post_init(self, context: Any, /) -> None:
55
64
  self._processors = []
56
65
  self._inmemory_exporter: InMemoryExporter = None
57
-
66
+ self._apiserver_exporter: ApiServerExporter = None
58
67
  # Inmemory & APIServer are the default exporters
59
68
  have_inmemory_exporter = False
60
69
  have_apiserver_exporter = False
61
70
  for exporter in self.exporters:
62
71
  if isinstance(exporter, InMemoryExporter):
63
72
  have_inmemory_exporter = True
73
+ self._inmemory_exporter = exporter
64
74
  elif isinstance(exporter, ApiServerExporter):
65
75
  have_apiserver_exporter = True
76
+ self._apiserver_exporter = exporter
66
77
 
67
78
  if not have_inmemory_exporter:
68
79
  inmemory_exporter = InMemoryExporter()
@@ -73,17 +84,6 @@ class OpentelemetryTracer(BaseModel, BaseTracer):
73
84
  self.exporters.append(apiserver_exporter)
74
85
  self._apiserver_exporter = apiserver_exporter
75
86
 
76
- tracer_provider = trace_sdk.TracerProvider()
77
- for exporter in self.exporters:
78
- processor, resource_attributes = exporter.get_processor()
79
- if resource_attributes is not None:
80
- update_resource_attributions(tracer_provider, resource_attributes)
81
- tracer_provider.add_span_processor(processor)
82
-
83
- logger.debug(f"Add exporter `{exporter.__class__.__name__}` to tracing.")
84
- self._processors.append(processor)
85
- logger.debug(f"Init OpentelemetryTracer with {len(self.exporters)} exporters.")
86
-
87
87
  self._meter_contexts = []
88
88
  self._meter_uploaders = []
89
89
  for exporter in self.exporters:
@@ -95,13 +95,55 @@ class OpentelemetryTracer(BaseModel, BaseTracer):
95
95
  meter_uploader = MeterUploader(meter_context)
96
96
  self._meter_uploaders.append(meter_uploader)
97
97
 
98
+ # init tracer provider
99
+ self._init_tracer_provider()
100
+
98
101
  # just for debug
99
102
  self._trace_file_path = ""
100
103
 
101
104
  # patch this before starting instrumentation
102
105
  # enable_veadk_tracing(self.dump)
103
106
 
104
- GoogleADKInstrumentor().instrument(tracer_provider=tracer_provider)
107
+ GoogleADKInstrumentor().instrument()
108
+
109
+ def _init_tracer_provider(self):
110
+ # 1. get global trace provider
111
+ global_tracer_provider = trace_api.get_tracer_provider()
112
+
113
+ if not isinstance(global_tracer_provider, TracerProvider):
114
+ logger.info(
115
+ f"Global tracer provider has not been set. Create tracer provider and set it now."
116
+ )
117
+ # 1.1 init tracer provider
118
+ tracer_provider = trace_sdk.TracerProvider()
119
+ trace_api.set_tracer_provider(tracer_provider)
120
+ global_tracer_provider = trace_api.get_tracer_provider()
121
+
122
+ have_apmplus_exporter = False
123
+ # 2. check if apmplus exporter is already exist
124
+ for processor in global_tracer_provider._active_span_processor._span_processors:
125
+ if isinstance(processor, (BatchSpanProcessor, SimpleSpanProcessor)):
126
+ # check exporter endpoint
127
+ if "apmplus" in processor.span_exporter._endpoint:
128
+ have_apmplus_exporter = True
129
+
130
+ # 3. add exporters to global tracer_provider
131
+ # range over a copy of exporters to avoid index issues
132
+ for exporter in self.exporters[:]:
133
+ if have_apmplus_exporter and isinstance(exporter, APMPlusExporter):
134
+ # apmplus exporter has been int in global tracer provider, need to remove from exporters.
135
+ self.exporters.remove(exporter)
136
+ continue
137
+ processor, resource_attributes = exporter.get_processor()
138
+ if resource_attributes is not None:
139
+ update_resource_attributions(
140
+ global_tracer_provider, resource_attributes
141
+ )
142
+ global_tracer_provider.add_span_processor(processor)
143
+ logger.debug(f"Add exporter `{exporter.__class__.__name__}` to tracing.")
144
+ self._processors.append(processor)
145
+ logger.debug(f"Init OpentelemetryTracer with {len(self.exporters)} exporters.")
146
+
105
147
 
106
148
  @override
107
149
  def dump(