@inkeep/agents-manage-ui 0.15.0 → 0.16.1

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 (439) hide show
  1. package/.next/standalone/agents-manage-ui/.next/BUILD_ID +1 -1
  2. package/.next/standalone/agents-manage-ui/.next/app-build-manifest.json +424 -416
  3. package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +5 -5
  4. package/.next/standalone/agents-manage-ui/.next/build-manifest.json +5 -5
  5. package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +13 -13
  6. package/.next/standalone/agents-manage-ui/.next/react-loadable-manifest.json +38 -38
  7. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js +2 -2
  8. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js.nft.json +1 -1
  9. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +3 -3
  11. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js.nft.json +1 -1
  12. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js +1 -1
  14. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js.nft.json +1 -1
  15. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js +2 -2
  17. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js.nft.json +1 -1
  18. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js +2 -2
  20. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js.nft.json +1 -1
  21. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js +2 -2
  23. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js.nft.json +1 -1
  24. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js +2 -2
  26. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js.nft.json +1 -1
  27. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js +2 -2
  29. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js.nft.json +1 -1
  30. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +1 -1
  32. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js.nft.json +1 -1
  33. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js +2 -2
  35. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js.nft.json +1 -1
  36. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js +1 -1
  38. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js.nft.json +1 -1
  39. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +2 -2
  41. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
  42. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +2 -2
  44. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js.nft.json +1 -1
  45. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +2 -2
  47. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js.nft.json +1 -1
  48. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page.js +2 -2
  50. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page.js.nft.json +1 -1
  51. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/new/page.js +2 -2
  53. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/new/page.js.nft.json +1 -1
  54. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/new/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/page.js +2 -2
  56. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/page.js.nft.json +1 -1
  57. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
  59. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js.nft.json +1 -1
  60. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_client-reference-manifest.js +1 -1
  61. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js +2 -2
  62. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js.nft.json +1 -1
  63. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page_client-reference-manifest.js +1 -1
  64. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js +2 -2
  65. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js.nft.json +1 -1
  66. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page_client-reference-manifest.js +1 -1
  67. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +2 -2
  68. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js.nft.json +1 -1
  69. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
  70. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +2 -2
  71. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js.nft.json +1 -1
  72. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  73. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
  74. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js.nft.json +1 -1
  75. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
  76. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +2 -2
  77. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
  78. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
  79. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +3 -3
  80. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js.nft.json +1 -1
  81. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
  82. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +3 -3
  83. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
  84. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
  85. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +2 -2
  86. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js.nft.json +1 -1
  87. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
  88. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +2 -2
  89. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  90. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  91. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
  92. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +9 -9
  93. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route.js +2 -2
  94. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route.js.nft.json +1 -1
  95. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  96. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route.js +1 -1
  97. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route.js.nft.json +1 -1
  98. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route_client-reference-manifest.js +1 -1
  99. package/.next/standalone/agents-manage-ui/.next/server/app/page.js +2 -2
  100. package/.next/standalone/agents-manage-ui/.next/server/app/page.js.nft.json +1 -1
  101. package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
  102. package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +5 -5
  103. package/.next/standalone/agents-manage-ui/.next/server/chunks/127.js +21 -0
  104. package/.next/standalone/agents-manage-ui/.next/server/chunks/1434.js +1 -0
  105. package/.next/standalone/agents-manage-ui/.next/server/chunks/1518.js +1 -0
  106. package/.next/standalone/agents-manage-ui/.next/server/chunks/1616.js +1 -0
  107. package/.next/standalone/agents-manage-ui/.next/server/chunks/1670.js +1 -1
  108. package/.next/standalone/agents-manage-ui/.next/server/chunks/2067.js +11 -0
  109. package/.next/standalone/agents-manage-ui/.next/server/chunks/2408.js +211 -0
  110. package/.next/standalone/agents-manage-ui/.next/server/chunks/2539.js +29 -13
  111. package/.next/standalone/agents-manage-ui/.next/server/chunks/276.js +61 -0
  112. package/.next/standalone/agents-manage-ui/.next/server/chunks/2854.js +1 -1
  113. package/.next/standalone/agents-manage-ui/.next/server/chunks/3388.js +1 -0
  114. package/.next/standalone/agents-manage-ui/.next/server/chunks/3547.js +1 -1
  115. package/.next/standalone/agents-manage-ui/.next/server/chunks/3856.js +1 -0
  116. package/.next/standalone/agents-manage-ui/.next/server/chunks/3948.js +1 -1
  117. package/.next/standalone/agents-manage-ui/.next/server/chunks/425.js +1 -1
  118. package/.next/standalone/agents-manage-ui/.next/server/chunks/4605.js +1 -1
  119. package/.next/standalone/agents-manage-ui/.next/server/chunks/5076.js +1 -0
  120. package/.next/standalone/agents-manage-ui/.next/server/chunks/5294.js +1 -1
  121. package/.next/standalone/agents-manage-ui/.next/server/chunks/{6957.js → 5450.js} +3 -3
  122. package/.next/standalone/agents-manage-ui/.next/server/chunks/5650.js +1 -0
  123. package/.next/standalone/agents-manage-ui/.next/server/chunks/5797.js +2 -2
  124. package/.next/standalone/agents-manage-ui/.next/server/chunks/5864.js +1 -1
  125. package/.next/standalone/agents-manage-ui/.next/server/chunks/5922.js +7 -0
  126. package/.next/standalone/agents-manage-ui/.next/server/chunks/6041.js +1 -0
  127. package/.next/standalone/agents-manage-ui/.next/server/chunks/6116.js +1 -1
  128. package/.next/standalone/agents-manage-ui/.next/server/chunks/6212.js +1 -1
  129. package/.next/standalone/agents-manage-ui/.next/server/chunks/6503.js +1 -0
  130. package/.next/standalone/agents-manage-ui/.next/server/chunks/6721.js +3 -3
  131. package/.next/standalone/agents-manage-ui/.next/server/chunks/6747.js +1 -10
  132. package/.next/standalone/agents-manage-ui/.next/server/chunks/679.js +1 -1
  133. package/.next/standalone/agents-manage-ui/.next/server/chunks/6796.js +1 -0
  134. package/.next/standalone/agents-manage-ui/.next/server/chunks/6997.js +1 -0
  135. package/.next/standalone/agents-manage-ui/.next/server/chunks/7024.js +1 -1
  136. package/.next/standalone/agents-manage-ui/.next/server/chunks/7165.js +26 -0
  137. package/.next/standalone/agents-manage-ui/.next/server/chunks/7177.js +1 -0
  138. package/.next/standalone/agents-manage-ui/.next/server/chunks/720.js +1 -1
  139. package/.next/standalone/agents-manage-ui/.next/server/chunks/726.js +1 -1
  140. package/.next/standalone/agents-manage-ui/.next/server/chunks/7269.js +1 -0
  141. package/.next/standalone/agents-manage-ui/.next/server/chunks/{2606.js → 7426.js} +1 -1
  142. package/.next/standalone/agents-manage-ui/.next/server/chunks/7457.js +10 -0
  143. package/.next/standalone/agents-manage-ui/.next/server/chunks/7585.js +1 -0
  144. package/.next/standalone/agents-manage-ui/.next/server/chunks/7683.js +1 -0
  145. package/.next/standalone/agents-manage-ui/.next/server/chunks/7989.js +1 -0
  146. package/.next/standalone/agents-manage-ui/.next/server/chunks/8048.js +1 -1
  147. package/.next/standalone/agents-manage-ui/.next/server/chunks/8212.js +1 -1
  148. package/.next/standalone/agents-manage-ui/.next/server/chunks/8321.js +1 -1
  149. package/.next/standalone/agents-manage-ui/.next/server/chunks/8475.js +20 -0
  150. package/.next/standalone/agents-manage-ui/.next/server/chunks/8717.js +4087 -0
  151. package/.next/standalone/agents-manage-ui/.next/server/chunks/8727.js +1 -1
  152. package/.next/standalone/agents-manage-ui/.next/server/chunks/8742.js +1 -1
  153. package/.next/standalone/agents-manage-ui/.next/server/chunks/8832.js +1 -1
  154. package/.next/standalone/agents-manage-ui/.next/server/chunks/8884.js +4 -1
  155. package/.next/standalone/agents-manage-ui/.next/server/chunks/9221.js +1 -0
  156. package/.next/standalone/agents-manage-ui/.next/server/chunks/9235.js +1 -1
  157. package/.next/standalone/agents-manage-ui/.next/server/chunks/9815.js +1 -1
  158. package/.next/standalone/agents-manage-ui/.next/server/middleware-build-manifest.js +1 -1
  159. package/.next/standalone/agents-manage-ui/.next/server/middleware-react-loadable-manifest.js +1 -1
  160. package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
  161. package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +1 -1
  162. package/.next/standalone/agents-manage-ui/.next/server/pages-manifest.json +1 -1
  163. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
  164. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
  165. package/.next/standalone/agents-manage-ui/.next/static/chunks/1405-3d85d23533ac6db2.js +1 -0
  166. package/.next/standalone/agents-manage-ui/.next/static/chunks/1558-1902ff84dafc5b8f.js +1 -0
  167. package/.next/standalone/agents-manage-ui/.next/static/chunks/1902-5f7e6f890c56fd5e.js +1 -0
  168. package/.next/standalone/agents-manage-ui/.next/static/chunks/1906-7edc57a875e3f637.js +1 -0
  169. package/.next/standalone/agents-manage-ui/.next/static/chunks/1916-97e7964ff1873f04.js +1 -0
  170. package/.next/standalone/agents-manage-ui/.next/static/chunks/2092-eb2102222c483d4b.js +7 -0
  171. package/.next/standalone/agents-manage-ui/.next/static/chunks/230-e00b347e7fa8192b.js +1 -0
  172. package/.next/standalone/agents-manage-ui/.next/static/chunks/2327-47c2efb7e68a3a64.js +1 -0
  173. package/.next/standalone/agents-manage-ui/.next/static/chunks/{2501-85880c1e62f3270a.js → 2501-45440e2c111488cb.js} +1 -1
  174. package/.next/standalone/agents-manage-ui/.next/static/chunks/2947.33c815aac92bf675.js +1 -0
  175. package/.next/standalone/agents-manage-ui/.next/static/chunks/3802.60ebababbed6635a.js +24 -0
  176. package/.next/standalone/agents-manage-ui/.next/static/chunks/3943.05fb6032ee56342e.js +1 -0
  177. package/.next/standalone/agents-manage-ui/.next/static/chunks/4101.e12eb22d4869a078.js +43 -0
  178. package/.next/standalone/agents-manage-ui/.next/static/chunks/4167-6e2ebf97b76ecf07.js +1 -0
  179. package/.next/standalone/agents-manage-ui/.next/static/chunks/4244-3aeb1f17a6512e46.js +1 -0
  180. package/.next/standalone/agents-manage-ui/.next/static/chunks/4380.a70de60979c0b24c.js +1 -0
  181. package/.next/standalone/agents-manage-ui/.next/static/chunks/4445-ac4f162b12731ad3.js +1 -0
  182. package/.next/standalone/agents-manage-ui/.next/static/chunks/4510-b1e4449b69c314b1.js +1 -0
  183. package/.next/standalone/agents-manage-ui/.next/static/chunks/{4229.8460547691a15bed.js → 4698.d0f44a1901da1e58.js} +6 -6
  184. package/.next/standalone/agents-manage-ui/.next/static/chunks/4708-47c2efb7e68a3a64.js +1 -0
  185. package/.next/standalone/agents-manage-ui/.next/static/chunks/4786.4cf4811a45c86c6e.js +63 -0
  186. package/.next/standalone/agents-manage-ui/.next/static/chunks/4880.a17273d067c06fb1.js +1 -0
  187. package/.next/standalone/agents-manage-ui/.next/static/chunks/4957-eb8c2b2357c2a78d.js +1 -0
  188. package/.next/standalone/agents-manage-ui/.next/static/chunks/4f68d2c2-0b7d67fcc83f7b6e.js +1 -0
  189. package/.next/standalone/agents-manage-ui/.next/static/chunks/5188-f7764a58cbc7416d.js +1 -0
  190. package/.next/standalone/agents-manage-ui/.next/static/chunks/5252.7d390fbdcb5f4cbc.js +1 -0
  191. package/.next/standalone/agents-manage-ui/.next/static/chunks/5763-74a168a5f84761f7.js +1 -0
  192. package/.next/standalone/agents-manage-ui/.next/static/chunks/5809-b9f93e5ead5ab206.js +1 -0
  193. package/.next/standalone/agents-manage-ui/.next/static/chunks/{5929.e9603f345807d0b1.js → 5929.4b73bd08ca9773be.js} +1 -1
  194. package/.next/standalone/agents-manage-ui/.next/static/chunks/6303-13576c46bcf7491d.js +25 -0
  195. package/.next/standalone/agents-manage-ui/.next/static/chunks/64ea4822-bc4cc13ff3d9e51a.js +1 -0
  196. package/.next/standalone/agents-manage-ui/.next/static/chunks/6507-d535f4c136d62561.js +2 -0
  197. package/.next/standalone/agents-manage-ui/.next/static/chunks/6649-7055c690296e6bd7.js +1 -0
  198. package/.next/standalone/agents-manage-ui/.next/static/chunks/6999-08a650d82fe142b8.js +20 -0
  199. package/.next/standalone/agents-manage-ui/.next/static/chunks/7167-6976d39ec7f6ac78.js +1 -0
  200. package/.next/standalone/agents-manage-ui/.next/static/chunks/7565-47c2efb7e68a3a64.js +1 -0
  201. package/.next/standalone/agents-manage-ui/.next/static/chunks/773.8158cbbe8f7154a4.js +1 -0
  202. package/.next/standalone/agents-manage-ui/.next/static/chunks/7775-a5a671900cf6b566.js +1 -0
  203. package/.next/standalone/agents-manage-ui/.next/static/chunks/7812-4e6561b17e62ca3d.js +1 -0
  204. package/.next/standalone/agents-manage-ui/.next/static/chunks/8003-441e723f2477b9b0.js +197 -0
  205. package/.next/standalone/agents-manage-ui/.next/static/chunks/{8197-93dc03bb0bdcd89b.js → 8197-25120aae7b35c5c6.js} +1 -1
  206. package/.next/standalone/agents-manage-ui/.next/static/chunks/8249-7cdd72c83cae4dcb.js +1 -0
  207. package/.next/standalone/agents-manage-ui/.next/static/chunks/8266-d06f452cd81d0518.js +1 -0
  208. package/.next/standalone/agents-manage-ui/.next/static/chunks/{645-18422068b91714c4.js → 8430-2d2f75d518393a7d.js} +1 -1
  209. package/.next/standalone/agents-manage-ui/.next/static/chunks/{8444.7864e443bafd6d1c.js → 8444.68c888789241ee31.js} +1 -1
  210. package/.next/standalone/agents-manage-ui/.next/static/chunks/8467-dd9ac18eb87f3c69.js +1 -0
  211. package/.next/standalone/agents-manage-ui/.next/static/chunks/8616.65ba9cec5fdd761a.js +24 -0
  212. package/.next/standalone/agents-manage-ui/.next/static/chunks/{26ad7772-cc27a89d8e005d3f.js → 869872cd-49ad39a4beb2445b.js} +1 -1
  213. package/.next/standalone/agents-manage-ui/.next/static/chunks/{8831-4edf015fab6c8a62.js → 8831-49777a8a731c0173.js} +1 -1
  214. package/.next/standalone/agents-manage-ui/.next/static/chunks/8873.92eaf7254e471e1c.js +1 -0
  215. package/.next/standalone/agents-manage-ui/.next/static/chunks/8988-0b24ec45fae98d4b.js +1 -0
  216. package/.next/standalone/agents-manage-ui/.next/static/chunks/9380-aaf892de452319c9.js +2 -0
  217. package/.next/standalone/agents-manage-ui/.next/static/chunks/9529-2d77e5bef96b23e9.js +1 -0
  218. package/.next/standalone/agents-manage-ui/.next/static/chunks/9748.3660cca522247ff0.js +1 -0
  219. package/.next/standalone/agents-manage-ui/.next/static/chunks/{9814.a4a28b324a9159e2.js → 9814.94e448878a25ac08.js} +2 -2
  220. package/.next/standalone/agents-manage-ui/.next/static/chunks/9858-1e1f5164b005b5d5.js +1 -0
  221. package/.next/standalone/agents-manage-ui/.next/static/chunks/9860-8536a6eec72e4370.js +1 -0
  222. package/.next/standalone/agents-manage-ui/.next/static/chunks/9946-47c2efb7e68a3a64.js +1 -0
  223. package/.next/standalone/agents-manage-ui/.next/static/chunks/{c222bd80-0514e3312bf9c78f.js → 9f915ca0-321a1a2664e96060.js} +1 -1
  224. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/{error-98ca4c8d51368705.js → error-a4822bb605736375.js} +1 -1
  225. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-3f77732c28eac5b2.js +1 -0
  226. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/{error-ef3511a0253a1330.js → error-3864b5a1f5cc7302.js} +1 -1
  227. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-2ff4e9110b97be98.js +1 -0
  228. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/{error-0672656e9e678998.js → error-19bb2aa5cdaaff99.js} +1 -1
  229. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/loading-89fe75b3b7575a9c.js +1 -0
  230. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-2ff4e9110b97be98.js +1 -0
  231. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-98a9696e4a55253f.js +1 -0
  232. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/{error-be8b5708f23d2e43.js → error-98a33adec29f93fe.js} +1 -1
  233. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/{page-7a7b925b18cdfd93.js → page-8356cdab82213d08.js} +1 -1
  234. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/{error-3b86172a5fe22d1c.js → error-0e22cabe487490a9.js} +1 -1
  235. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/loading-89fe75b3b7575a9c.js +1 -0
  236. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/{page-7a7b925b18cdfd93.js → page-8356cdab82213d08.js} +1 -1
  237. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/{page-d92ba4a2b4ac984e.js → page-e09895dc62b61b6e.js} +1 -1
  238. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-5147f98b148f5a01.js +1 -0
  239. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/{error-30b8013604e83604.js → error-1f13cc4e89ec65bb.js} +1 -1
  240. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-c6663bec65b05b5e.js +1 -0
  241. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/page-89fe75b3b7575a9c.js +1 -0
  242. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/{page-a59bad5d4913fa77.js → page-f9a4450c8779c664.js} +1 -1
  243. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/page-93066be3852bcb7d.js +1 -0
  244. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-1c5769985850e2b3.js +1 -0
  245. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/[graphId]/{error-e6e8d53b544b7a3a.js → error-627bc925813d4c0e.js} +1 -1
  246. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/[graphId]/loading-d6b356cceaefdf5c.js +1 -0
  247. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page-1befa5c6752d0d34.js +1 -0
  248. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/{error-80ac013e2e0d39ec.js → error-81a5d2faf618e23a.js} +1 -1
  249. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/loading-89fe75b3b7575a9c.js +1 -0
  250. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/new/page-25b84b1e4e21a45f.js +1 -0
  251. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/page-524bf97da69dc1ab.js +1 -0
  252. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/{page-4498950740edb744.js → page-36229a249ec451f4.js} +1 -1
  253. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/{page-f92fa2fae8802a02.js → page-9153447bb5026249.js} +1 -1
  254. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/layout-d6b356cceaefdf5c.js +1 -0
  255. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/page-b43d9969547db312.js +1 -0
  256. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-12e152d8dd947a35.js +1 -0
  257. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/{not-found-89770606dca36166.js → not-found-d01b3c88f2a32798.js} +1 -1
  258. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{error-eca20c06c32063db.js → error-77c7a93fdc65e128.js} +1 -1
  259. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/page-2c30ed902003a4cb.js +1 -0
  260. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/page-7782a4cf841a7e3f.js +1 -0
  261. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page-e49e847d402ef20e.js +1 -0
  262. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-59ad0e44b2ea6daa.js +1 -0
  263. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/{error-f217058bf7db150a.js → error-e7e1d627b4279b71.js} +1 -1
  264. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/loading-89fe75b3b7575a9c.js +1 -0
  265. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-dfb60f6296b75b84.js +1 -0
  266. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-7eb12014eb28697d.js +1 -0
  267. package/.next/standalone/agents-manage-ui/.next/static/chunks/webpack-c55841bbe3abf748.js +1 -0
  268. package/.next/standalone/agents-manage-ui/.next/static/css/a3435362caba0331.css +1 -0
  269. package/.next/standalone/agents-manage-ui/.next/static/css/{09dfadb69bdaa005.css → df64af30921ff372.css} +1 -1
  270. package/.next/standalone/agents-manage-ui/package.json +3 -3
  271. package/.next/standalone/packages/agents-core/package.json +3 -2
  272. package/package.json +6 -6
  273. package/src/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.tsx +2 -3
  274. package/src/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.tsx +5 -0
  275. package/src/app/api/signoz/conversations/[conversationId]/route.ts +17 -15
  276. package/src/app/api/signoz/route.ts +81 -4
  277. package/src/app/utils/active-tools.ts +2 -2
  278. package/src/components/artifact-components/form/artifact-component-form.tsx +18 -17
  279. package/src/components/artifact-components/form/form-configuration.tsx +1 -2
  280. package/src/components/artifact-components/form/validation.ts +13 -9
  281. package/src/components/credentials/credential-tools-list.tsx +6 -15
  282. package/src/components/credentials/views/credential-form.tsx +46 -46
  283. package/src/components/credentials/views/edit-credential-form.tsx +5 -1
  284. package/src/components/form/generic-input.tsx +3 -0
  285. package/src/components/form/generic-select.tsx +9 -1
  286. package/src/components/form/prompt-editor.tsx +3 -3
  287. package/src/components/form/standalone-json-editor.tsx +2 -2
  288. package/src/components/graph/configuration/graph-types.tsx +1 -3
  289. package/src/components/graph/configuration/node-types.tsx +23 -1
  290. package/src/components/graph/graph.tsx +56 -28
  291. package/src/components/graph/node-library/node-library.tsx +1 -0
  292. package/src/components/graph/nodes/function-tool-node.tsx +32 -0
  293. package/src/components/graph/nodes/mcp-node.tsx +1 -1
  294. package/src/components/graph/playground/chat-widget.tsx +40 -9
  295. package/src/components/graph/playground/ikp-message.tsx +1 -1
  296. package/src/components/graph/playground/playground.tsx +1 -0
  297. package/src/components/graph/sidepane/metadata/context-config.tsx +5 -40
  298. package/src/components/graph/sidepane/nodes/expandable-text-area.tsx +7 -9
  299. package/src/components/graph/sidepane/nodes/function-tool-node-editor.tsx +194 -0
  300. package/src/components/graph/sidepane/nodes/mcp-node-editor.tsx +2 -2
  301. package/src/components/graph/sidepane/nodes/mcp-selector/mcp-server-item.tsx +2 -2
  302. package/src/components/graph/sidepane/sidepane.tsx +7 -0
  303. package/src/components/graph/toolbar/toolbar.tsx +8 -8
  304. package/src/components/mcp-servers/available-tools-card.tsx +1 -1
  305. package/src/components/mcp-servers/mcp-tool-item.tsx +2 -2
  306. package/src/components/mcp-servers/view-mcp-server-details.tsx +10 -9
  307. package/src/components/projects/form/form-configuration.ts +6 -0
  308. package/src/components/projects/form/project-form.tsx +40 -0
  309. package/src/components/projects/form/project-sandbox-section.tsx +139 -0
  310. package/src/components/projects/form/validation.ts +4 -0
  311. package/src/components/traces/timeline/render-panel-content.tsx +24 -105
  312. package/src/components/traces/timeline/timeline-item.tsx +24 -25
  313. package/src/components/traces/timeline/timeline-wrapper.tsx +42 -12
  314. package/src/components/traces/traces-overview.tsx +48 -27
  315. package/src/constants/signoz.ts +1 -1
  316. package/src/features/graph/domain/__tests__/roundtrip.test.ts +2 -6
  317. package/src/features/graph/domain/__tests__/serialize.test.ts +4 -4
  318. package/src/features/graph/domain/deserialize.ts +40 -6
  319. package/src/features/graph/domain/graph-initializer-helpers.ts +3 -5
  320. package/src/features/graph/domain/serialize.ts +76 -17
  321. package/src/features/graph/state/use-graph-store.ts +1 -3
  322. package/src/hooks/use-signoz-config.ts +36 -0
  323. package/src/lib/__tests__/context-suggestions.test.ts +6 -6
  324. package/src/lib/api/artifact-components.ts +10 -32
  325. package/src/lib/api/tools.ts +2 -1
  326. package/src/lib/context-suggestions.ts +6 -6
  327. package/src/lib/json-schema-validation.ts +2 -2
  328. package/src/lib/types/graph-full.ts +37 -16
  329. package/src/lib/utils/graph-error-parser.ts +1 -1
  330. package/src/lib/utils/orphaned-tools-detector.ts +1 -1
  331. package/.next/standalone/agents-manage-ui/.next/server/chunks/1288.js +0 -1
  332. package/.next/standalone/agents-manage-ui/.next/server/chunks/1720.js +0 -4
  333. package/.next/standalone/agents-manage-ui/.next/server/chunks/195.js +0 -21
  334. package/.next/standalone/agents-manage-ui/.next/server/chunks/2415.js +0 -1
  335. package/.next/standalone/agents-manage-ui/.next/server/chunks/245.js +0 -55
  336. package/.next/standalone/agents-manage-ui/.next/server/chunks/2450.js +0 -1
  337. package/.next/standalone/agents-manage-ui/.next/server/chunks/2463.js +0 -20
  338. package/.next/standalone/agents-manage-ui/.next/server/chunks/2496.js +0 -1
  339. package/.next/standalone/agents-manage-ui/.next/server/chunks/3485.js +0 -1
  340. package/.next/standalone/agents-manage-ui/.next/server/chunks/3538.js +0 -1
  341. package/.next/standalone/agents-manage-ui/.next/server/chunks/4843.js +0 -1
  342. package/.next/standalone/agents-manage-ui/.next/server/chunks/5058.js +0 -1
  343. package/.next/standalone/agents-manage-ui/.next/server/chunks/5518.js +0 -1
  344. package/.next/standalone/agents-manage-ui/.next/server/chunks/5552.js +0 -1
  345. package/.next/standalone/agents-manage-ui/.next/server/chunks/5716.js +0 -20
  346. package/.next/standalone/agents-manage-ui/.next/server/chunks/5893.js +0 -25
  347. package/.next/standalone/agents-manage-ui/.next/server/chunks/6007.js +0 -1
  348. package/.next/standalone/agents-manage-ui/.next/server/chunks/6333.js +0 -1
  349. package/.next/standalone/agents-manage-ui/.next/server/chunks/6525.js +0 -4087
  350. package/.next/standalone/agents-manage-ui/.next/server/chunks/7346.js +0 -1
  351. package/.next/standalone/agents-manage-ui/.next/server/chunks/7707.js +0 -1
  352. package/.next/standalone/agents-manage-ui/.next/server/chunks/7862.js +0 -1
  353. package/.next/standalone/agents-manage-ui/.next/server/chunks/8100.js +0 -211
  354. package/.next/standalone/agents-manage-ui/.next/server/chunks/8294.js +0 -1
  355. package/.next/standalone/agents-manage-ui/.next/server/chunks/8314.js +0 -1
  356. package/.next/standalone/agents-manage-ui/.next/server/chunks/9128.js +0 -1
  357. package/.next/standalone/agents-manage-ui/.next/server/chunks/9340.js +0 -1
  358. package/.next/standalone/agents-manage-ui/.next/server/chunks/9490.js +0 -1
  359. package/.next/standalone/agents-manage-ui/.next/server/chunks/9659.js +0 -1
  360. package/.next/standalone/agents-manage-ui/.next/static/chunks/102-7512914c45c3b1c7.js +0 -1
  361. package/.next/standalone/agents-manage-ui/.next/static/chunks/1191-22286038e3cf98ee.js +0 -1
  362. package/.next/standalone/agents-manage-ui/.next/static/chunks/1482-9b4bf21cc7c344fc.js +0 -1
  363. package/.next/standalone/agents-manage-ui/.next/static/chunks/1558-f09ec7786b6ad866.js +0 -1
  364. package/.next/standalone/agents-manage-ui/.next/static/chunks/1604.5c14717292e6bd99.js +0 -1
  365. package/.next/standalone/agents-manage-ui/.next/static/chunks/1736-6a4a9b76c41bb120.js +0 -1
  366. package/.next/standalone/agents-manage-ui/.next/static/chunks/1771-5ceaf6a0f3601ad4.js +0 -1
  367. package/.next/standalone/agents-manage-ui/.next/static/chunks/1830.703ab2b09936da70.js +0 -1
  368. package/.next/standalone/agents-manage-ui/.next/static/chunks/1894.e4de443956283938.js +0 -1
  369. package/.next/standalone/agents-manage-ui/.next/static/chunks/1907-4a95aef238167de5.js +0 -1
  370. package/.next/standalone/agents-manage-ui/.next/static/chunks/225-12afe2ed1ce8f747.js +0 -1
  371. package/.next/standalone/agents-manage-ui/.next/static/chunks/2334-9c0d908003b40bcd.js +0 -1
  372. package/.next/standalone/agents-manage-ui/.next/static/chunks/24a2b255-903019441fb58706.js +0 -1
  373. package/.next/standalone/agents-manage-ui/.next/static/chunks/2597-b309d80128db51fe.js +0 -20
  374. package/.next/standalone/agents-manage-ui/.next/static/chunks/2811-5cbe9d781cd0bafb.js +0 -1
  375. package/.next/standalone/agents-manage-ui/.next/static/chunks/3562.2ce66b7f59b86e19.js +0 -1
  376. package/.next/standalone/agents-manage-ui/.next/static/chunks/3737-2a02432078b2f2f0.js +0 -1
  377. package/.next/standalone/agents-manage-ui/.next/static/chunks/3802.835e425d6843e779.js +0 -24
  378. package/.next/standalone/agents-manage-ui/.next/static/chunks/397-611c044fe87d89cd.js +0 -1
  379. package/.next/standalone/agents-manage-ui/.next/static/chunks/4101.482e37ad7b4d8b59.js +0 -43
  380. package/.next/standalone/agents-manage-ui/.next/static/chunks/4492-20e1ab26a989aec8.js +0 -1
  381. package/.next/standalone/agents-manage-ui/.next/static/chunks/4786.8e2bd3c6084b0d83.js +0 -63
  382. package/.next/standalone/agents-manage-ui/.next/static/chunks/4a1e02d9-c537fee21142b0db.js +0 -1
  383. package/.next/standalone/agents-manage-ui/.next/static/chunks/5052.aa398bbfbdf4a25b.js +0 -1
  384. package/.next/standalone/agents-manage-ui/.next/static/chunks/6118-2a02432078b2f2f0.js +0 -1
  385. package/.next/standalone/agents-manage-ui/.next/static/chunks/6410-f93d663c6ef0d128.js +0 -2
  386. package/.next/standalone/agents-manage-ui/.next/static/chunks/6419-cc97e3d16c7907dd.js +0 -1
  387. package/.next/standalone/agents-manage-ui/.next/static/chunks/6497-64d489b4b3b89b0a.js +0 -1
  388. package/.next/standalone/agents-manage-ui/.next/static/chunks/6501-2c90923d1b2f0f3e.js +0 -1
  389. package/.next/standalone/agents-manage-ui/.next/static/chunks/6992.d83965ff53297d6a.js +0 -1
  390. package/.next/standalone/agents-manage-ui/.next/static/chunks/7167-7f56dcb4d30b0d06.js +0 -1
  391. package/.next/standalone/agents-manage-ui/.next/static/chunks/718.29e58bde611f434b.js +0 -1
  392. package/.next/standalone/agents-manage-ui/.next/static/chunks/7273-2a07799b9220335f.js +0 -1
  393. package/.next/standalone/agents-manage-ui/.next/static/chunks/7305-4bde6b1356d61f7a.js +0 -1
  394. package/.next/standalone/agents-manage-ui/.next/static/chunks/7548-72eac23478e21cf6.js +0 -25
  395. package/.next/standalone/agents-manage-ui/.next/static/chunks/773.40b145c0733f6112.js +0 -1
  396. package/.next/standalone/agents-manage-ui/.next/static/chunks/776-1b93689bfa34311b.js +0 -1
  397. package/.next/standalone/agents-manage-ui/.next/static/chunks/7775-846c2c087ca8b724.js +0 -1
  398. package/.next/standalone/agents-manage-ui/.next/static/chunks/7829-0a56074397c08ece.js +0 -1
  399. package/.next/standalone/agents-manage-ui/.next/static/chunks/7904-825c751bfba62e0d.js +0 -1
  400. package/.next/standalone/agents-manage-ui/.next/static/chunks/8057-4851dad2e4c79710.js +0 -2
  401. package/.next/standalone/agents-manage-ui/.next/static/chunks/8096-7bededbba20a8c6d.js +0 -1
  402. package/.next/standalone/agents-manage-ui/.next/static/chunks/8098-ddd83ff45bfe3a5d.js +0 -197
  403. package/.next/standalone/agents-manage-ui/.next/static/chunks/8130-05473727afa10148.js +0 -1
  404. package/.next/standalone/agents-manage-ui/.next/static/chunks/8467-977d32f1b1634139.js +0 -1
  405. package/.next/standalone/agents-manage-ui/.next/static/chunks/8499-2a02432078b2f2f0.js +0 -1
  406. package/.next/standalone/agents-manage-ui/.next/static/chunks/8616.ea1f6008d83a0711.js +0 -24
  407. package/.next/standalone/agents-manage-ui/.next/static/chunks/880-2a02432078b2f2f0.js +0 -1
  408. package/.next/standalone/agents-manage-ui/.next/static/chunks/9425-43d6833e2edd012c.js +0 -1
  409. package/.next/standalone/agents-manage-ui/.next/static/chunks/9846-e037fda0c364e432.js +0 -1
  410. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-08055bb8e4382446.js +0 -1
  411. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-d9490f6b6f579170.js +0 -1
  412. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/loading-0afec83059c372f2.js +0 -1
  413. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-d9490f6b6f579170.js +0 -1
  414. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-74a91afbcd7ed8fb.js +0 -1
  415. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/loading-0afec83059c372f2.js +0 -1
  416. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-8e935b1928cbd189.js +0 -1
  417. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-2ec81d74c5356465.js +0 -1
  418. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/page-0afec83059c372f2.js +0 -1
  419. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/page-9e9e45f4ed4671bd.js +0 -1
  420. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-84c46da56823c111.js +0 -1
  421. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/[graphId]/loading-cb0a860db0fa369e.js +0 -1
  422. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page-1eb60b0e4938c014.js +0 -1
  423. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/loading-0afec83059c372f2.js +0 -1
  424. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/new/page-c5b98195dd79bb1b.js +0 -1
  425. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/page-158b4e4e3a38ab44.js +0 -1
  426. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/layout-cb0a860db0fa369e.js +0 -1
  427. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/page-946383d2e06948f8.js +0 -1
  428. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-5dcaab857d668f9c.js +0 -1
  429. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/page-c6c8dab9e2bf498d.js +0 -1
  430. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/page-e1fbd32969de96cb.js +0 -1
  431. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page-9eaf84488f4f9f65.js +0 -1
  432. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-8f75d39c519a0275.js +0 -1
  433. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/loading-0afec83059c372f2.js +0 -1
  434. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-e5d5c9a0e199dbf1.js +0 -1
  435. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-0d1a9bb089c95c35.js +0 -1
  436. package/.next/standalone/agents-manage-ui/.next/static/chunks/webpack-b20dc8e12f728891.js +0 -1
  437. package/.next/standalone/agents-manage-ui/.next/static/css/ad6f03aa74529d84.css +0 -1
  438. /package/.next/standalone/agents-manage-ui/.next/static/{ysAmL8fwnhlbMOx-TKHjN → zCyXob78JMEB3IDoUAavP}/_buildManifest.js +0 -0
  439. /package/.next/standalone/agents-manage-ui/.next/static/{ysAmL8fwnhlbMOx-TKHjN → zCyXob78JMEB3IDoUAavP}/_ssgManifest.js +0 -0
@@ -1,6 +1,7 @@
1
- import { Bot, BotMessageSquare, Hammer } from 'lucide-react';
1
+ import { Bot, BotMessageSquare, Code, Hammer } from 'lucide-react';
2
2
  import { AgentNode } from '../nodes/agent-node';
3
3
  import { ExternalAgentNode } from '../nodes/external-agent-node';
4
+ import { FunctionToolNode } from '../nodes/function-tool-node';
4
5
  import { MCPNode } from '../nodes/mcp-node';
5
6
  import { MCPPlaceholderNode } from '../nodes/mcp-placeholder-node';
6
7
  import type { GraphModels } from './graph-types';
@@ -46,11 +47,21 @@ export interface ExternalAgentNodeData extends Record<string, unknown> {
46
47
  credentialReferenceId?: string | null;
47
48
  }
48
49
 
50
+ export interface FunctionToolNodeData extends Record<string, unknown> {
51
+ functionToolId: string;
52
+ agentId?: string | null; // null when unconnected, string when connected to specific agent
53
+ name?: string;
54
+ description?: string;
55
+ code?: string;
56
+ inputSchema?: Record<string, unknown>;
57
+ }
58
+
49
59
  export enum NodeType {
50
60
  Agent = 'agent',
51
61
  ExternalAgent = 'external-agent',
52
62
  MCP = 'mcp',
53
63
  MCPPlaceholder = 'mcp-placeholder',
64
+ FunctionTool = 'function-tool',
54
65
  }
55
66
 
56
67
  export const nodeTypes = {
@@ -58,12 +69,14 @@ export const nodeTypes = {
58
69
  [NodeType.ExternalAgent]: ExternalAgentNode,
59
70
  [NodeType.MCP]: MCPNode,
60
71
  [NodeType.MCPPlaceholder]: MCPPlaceholderNode,
72
+ [NodeType.FunctionTool]: FunctionToolNode,
61
73
  };
62
74
 
63
75
  export const mcpNodeHandleId = 'target-mcp';
64
76
  export const agentNodeSourceHandleId = 'source-agent';
65
77
  export const agentNodeTargetHandleId = 'target-agent';
66
78
  export const externalAgentNodeTargetHandleId = 'target-external-agent';
79
+ export const functionToolNodeHandleId = 'target-function-tool';
67
80
 
68
81
  export const newNodeDefaults: Record<keyof typeof nodeTypes, NodeData> = {
69
82
  [NodeType.Agent]: {
@@ -80,6 +93,10 @@ export const newNodeDefaults: Record<keyof typeof nodeTypes, NodeData> = {
80
93
  [NodeType.MCPPlaceholder]: {
81
94
  name: 'Select MCP server',
82
95
  },
96
+ [NodeType.FunctionTool]: {
97
+ name: 'Function Tool',
98
+ agentId: null,
99
+ },
83
100
  };
84
101
 
85
102
  export const nodeTypeMap = {
@@ -103,4 +120,9 @@ export const nodeTypeMap = {
103
120
  name: 'MCP',
104
121
  Icon: Hammer,
105
122
  },
123
+ [NodeType.FunctionTool]: {
124
+ type: NodeType.FunctionTool,
125
+ name: 'Function Tool',
126
+ Icon: Code,
127
+ },
106
128
  };
@@ -26,8 +26,9 @@ import {
26
26
  type ExtendedFullGraphDefinition,
27
27
  extractGraphMetadata,
28
28
  serializeGraphData,
29
+ validateSerializedData,
29
30
  } from '@/features/graph/domain';
30
- import { useGraphActions, useGraphStore } from '@/features/graph/state/use-graph-store'
31
+ import { useGraphActions, useGraphStore } from '@/features/graph/state/use-graph-store';
31
32
  import { useGraphShortcuts } from '@/features/graph/ui/use-graph-shortcuts';
32
33
  import { useGraphErrors } from '@/hooks/use-graph-errors';
33
34
  import { useSidePane } from '@/hooks/use-side-pane';
@@ -180,7 +181,14 @@ function Flow({
180
181
  return lookup;
181
182
  }, [graph?.agents]);
182
183
 
183
- const { screenToFlowPosition, updateNodeData, fitView, getNodes, getEdges, getIntersectingNodes } = useReactFlow();
184
+ const {
185
+ screenToFlowPosition,
186
+ updateNodeData,
187
+ fitView,
188
+ getNodes,
189
+ getEdges,
190
+ getIntersectingNodes,
191
+ } = useReactFlow();
184
192
  const { storeNodes, edges, metadata } = useGraphStore((state) => ({
185
193
  storeNodes: state.nodes,
186
194
  edges: state.edges,
@@ -207,33 +215,36 @@ function Flow({
207
215
  * Custom `onNodesChange` handler that relayouts the graph using Dagre
208
216
  * when a `replace` change causes node intersections.
209
217
  **/
210
- const onNodesChange: typeof storeOnNodesChange = useCallback((changes) => {
211
- storeOnNodesChange(changes);
218
+ const onNodesChange: typeof storeOnNodesChange = useCallback(
219
+ (changes) => {
220
+ storeOnNodesChange(changes);
212
221
 
213
- const replaceChanges = changes.filter(change => change.type === 'replace');
214
- if (!replaceChanges.length) {
215
- return
216
- }
217
- // Using `setTimeout` instead of `requestAnimationFrame` ensures updated node positions are available,
218
- // as `requestAnimationFrame` may run too early, causing `hasIntersections` to incorrectly return false.
219
- setTimeout(() => {
220
- const currentNodes = getNodes();
221
- // Check if any of the replaced nodes are intersecting with others
222
- for (const change of replaceChanges) {
223
- const node = currentNodes.find(n => n.id === change.id);
224
- if (!node) {
225
- continue
226
- }
227
- // Use React Flow's intersection detection
228
- const intersectingNodes = getIntersectingNodes(node);
229
- if (intersectingNodes.length > 0) {
230
- // Apply Dagre layout to resolve intersections
231
- setNodes((prev) => applyDagreLayout(prev, getEdges()))
232
- return // exit loop
233
- }
222
+ const replaceChanges = changes.filter((change) => change.type === 'replace');
223
+ if (!replaceChanges.length) {
224
+ return;
234
225
  }
235
- }, 0)
236
- }, [getNodes, getEdges, getIntersectingNodes, setNodes, storeOnNodesChange]);
226
+ // Using `setTimeout` instead of `requestAnimationFrame` ensures updated node positions are available,
227
+ // as `requestAnimationFrame` may run too early, causing `hasIntersections` to incorrectly return false.
228
+ setTimeout(() => {
229
+ const currentNodes = getNodes();
230
+ // Check if any of the replaced nodes are intersecting with others
231
+ for (const change of replaceChanges) {
232
+ const node = currentNodes.find((n) => n.id === change.id);
233
+ if (!node) {
234
+ continue;
235
+ }
236
+ // Use React Flow's intersection detection
237
+ const intersectingNodes = getIntersectingNodes(node);
238
+ if (intersectingNodes.length > 0) {
239
+ // Apply Dagre layout to resolve intersections
240
+ setNodes((prev) => applyDagreLayout(prev, getEdges()));
241
+ return; // exit loop
242
+ }
243
+ }
244
+ }, 0);
245
+ },
246
+ [getNodes, getEdges, getIntersectingNodes, setNodes, storeOnNodesChange]
247
+ );
237
248
 
238
249
  // biome-ignore lint/correctness/useExhaustiveDependencies: we only want to run this effect on first render
239
250
  useEffect(() => {
@@ -569,6 +580,23 @@ function Flow({
569
580
  agentToolConfigLookup
570
581
  );
571
582
 
583
+ // Validate the serialized data before saving
584
+ const validationErrors = validateSerializedData(serializedData);
585
+ if (validationErrors.length > 0) {
586
+ // Convert validation errors to the format expected by parseGraphValidationErrors
587
+ const errorObjects = validationErrors.map((error) => ({
588
+ message: error,
589
+ field: 'general',
590
+ code: 'custom_validation',
591
+ path: [],
592
+ }));
593
+
594
+ const errorSummary = parseGraphValidationErrors(JSON.stringify(errorObjects));
595
+ setErrors(errorSummary);
596
+ toast.error(`Validation failed: ${validationErrors[0]}`);
597
+ return;
598
+ }
599
+
572
600
  const res = await saveGraph(
573
601
  tenantId,
574
602
  projectId,
@@ -704,7 +732,7 @@ function Flow({
704
732
  <Panel position="top-right">
705
733
  <Toolbar
706
734
  onSubmit={onSubmit}
707
- isPreviewDisabled={!graph?.id}
735
+ inPreviewDisabled={!graph?.id}
708
736
  toggleSidePane={isOpen ? backToGraph : openGraphPane}
709
737
  setShowPlayground={() => {
710
738
  closeSidePane();
@@ -7,6 +7,7 @@ const nodeTypes: NodeItem[] = [
7
7
  nodeTypeMap[NodeType.Agent],
8
8
  nodeTypeMap[NodeType.ExternalAgent],
9
9
  nodeTypeMap[NodeType.MCPPlaceholder],
10
+ nodeTypeMap[NodeType.FunctionTool],
10
11
  ];
11
12
 
12
13
  export default function NodeLibrary() {
@@ -0,0 +1,32 @@
1
+ import { type NodeProps, Position } from '@xyflow/react';
2
+ import { Code } from 'lucide-react';
3
+ import { type FunctionToolNodeData, functionToolNodeHandleId } from '../configuration/node-types';
4
+ import { BaseNode, BaseNodeHeader, BaseNodeHeaderTitle } from './base-node';
5
+ import { Handle } from './handle';
6
+
7
+ export function FunctionToolNode(props: NodeProps & { data: FunctionToolNodeData }) {
8
+ const { data, selected } = props;
9
+
10
+ // Get data directly from node (like agents do)
11
+ const name = String(data.name || 'Function Tool');
12
+ const description = String(data.description || '');
13
+
14
+ return (
15
+ <BaseNode isSelected={selected} className="rounded-4xl min-w-40 max-w-xs">
16
+ <BaseNodeHeader className="mb-0 py-3">
17
+ <div className="flex flex-col gap-1.5">
18
+ <div className="flex items-center gap-2">
19
+ <div className="w-5 h-5 rounded flex items-center justify-center flex-shrink-0">
20
+ <Code className="w-4 h-4 text-foreground/70" />
21
+ </div>
22
+ <BaseNodeHeaderTitle className="flex-1 truncate">{name}</BaseNodeHeaderTitle>
23
+ </div>
24
+ {description?.trim() ? (
25
+ <p className="text-xs text-muted-foreground line-clamp-2 pl-7">{description}</p>
26
+ ) : null}
27
+ </div>
28
+ </BaseNodeHeader>
29
+ <Handle id={functionToolNodeHandleId} type="target" position={Position.Top} isConnectable />
30
+ </BaseNode>
31
+ );
32
+ }
@@ -27,7 +27,7 @@ export function MCPNode(props: NodeProps & { data: MCPNodeData }) {
27
27
 
28
28
  const activeTools = getActiveTools({
29
29
  availableTools: availableTools,
30
- activeTools: toolData?.config?.mcp?.activeTools,
30
+ activeTools: toolData?.config?.type === 'mcp' ? toolData.config.mcp.activeTools : undefined,
31
31
  });
32
32
 
33
33
  const selectedTools = getCurrentSelectedToolsForNode(props, agentToolConfigLookup, edges);
@@ -1,8 +1,9 @@
1
1
  'use client';
2
- import { InkeepEmbeddedChat } from '@inkeep/cxkit-react-oss';
3
- import type { ComponentsConfig, InkeepCallbackEvent } from '@inkeep/cxkit-react-oss/types';
2
+ import { InkeepEmbeddedChat } from '@inkeep/agents-ui';
3
+ import type { ComponentsConfig, InkeepCallbackEvent } from '@inkeep/agents-ui/types';
4
4
  import { nanoid } from 'nanoid';
5
- import { useEffect, useRef } from 'react';
5
+ import { useCallback, useEffect, useRef } from 'react';
6
+ import type { ConversationDetail } from '@/components/traces/timeline/types';
6
7
  import { useRuntimeConfig } from '@/contexts/runtime-config-context';
7
8
  import { IkpMessage as IkpMessageComponent } from './ikp-message';
8
9
 
@@ -15,6 +16,7 @@ interface ChatWidgetProps {
15
16
  startPolling: () => void;
16
17
  stopPolling: () => void;
17
18
  customHeaders?: Record<string, string>;
19
+ chatActivities: ConversationDetail | null;
18
20
  }
19
21
 
20
22
  const styleOverrides = `
@@ -127,9 +129,35 @@ export function ChatWidget({
127
129
  startPolling,
128
130
  stopPolling,
129
131
  customHeaders = {},
132
+ chatActivities,
130
133
  }: ChatWidgetProps) {
131
134
  const { INKEEP_AGENTS_RUN_API_URL, INKEEP_AGENTS_RUN_API_BYPASS_SECRET } = useRuntimeConfig();
132
135
  const stopPollingTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);
136
+ const hasReceivedAssistantMessageRef = useRef(false);
137
+ const POLLING_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
138
+
139
+ // Helper function to reset the stop polling timeout
140
+ const resetStopPollingTimeout = useCallback(() => {
141
+ // Clear any existing timeout
142
+ if (stopPollingTimeoutRef.current) {
143
+ clearTimeout(stopPollingTimeoutRef.current);
144
+ stopPollingTimeoutRef.current = null;
145
+ }
146
+
147
+ // Set a new timeout for 5 minutes
148
+ stopPollingTimeoutRef.current = setTimeout(() => {
149
+ stopPolling();
150
+ stopPollingTimeoutRef.current = null;
151
+ }, POLLING_TIMEOUT_MS);
152
+ }, [stopPolling, POLLING_TIMEOUT_MS]);
153
+
154
+ // Reset timeout when new activities come in AFTER assistant message received
155
+ useEffect(() => {
156
+ // Only reset timeout if we've already received the assistant message and new activities were added
157
+ if (hasReceivedAssistantMessageRef.current) {
158
+ resetStopPollingTimeout();
159
+ }
160
+ }, [chatActivities?.activities?.length, resetStopPollingTimeout]);
133
161
 
134
162
  useEffect(() => {
135
163
  return () => {
@@ -147,13 +175,14 @@ export function ChatWidget({
147
175
  baseSettings={{
148
176
  onEvent: (event: InkeepCallbackEvent) => {
149
177
  if (event.eventName === 'assistant_message_received') {
150
- // Add a delay before stopping polling to allow activity data to be available
151
- stopPollingTimeoutRef.current = setTimeout(() => {
152
- stopPolling();
153
- stopPollingTimeoutRef.current = null;
154
- }, 15000);
178
+ // Mark that we've received the assistant message
179
+ hasReceivedAssistantMessageRef.current = true;
180
+ // Reset the timeout to 5 minutes after receiving an assistant message
181
+ resetStopPollingTimeout();
155
182
  }
156
183
  if (event.eventName === 'user_message_submitted') {
184
+ // Reset the flag
185
+ hasReceivedAssistantMessageRef.current = false;
157
186
  // Cancel any pending stop polling timeout since we need to keep polling
158
187
  if (stopPollingTimeoutRef.current) {
159
188
  clearTimeout(stopPollingTimeoutRef.current);
@@ -162,6 +191,8 @@ export function ChatWidget({
162
191
  startPolling();
163
192
  }
164
193
  if (event.eventName === 'chat_clear_button_clicked') {
194
+ // Reset the flag
195
+ hasReceivedAssistantMessageRef.current = false;
165
196
  // Cancel any pending stop polling timeout
166
197
  if (stopPollingTimeoutRef.current) {
167
198
  clearTimeout(stopPollingTimeoutRef.current);
@@ -234,7 +265,7 @@ export function ChatWidget({
234
265
  );
235
266
  }
236
267
 
237
- // using the built in IkpMessage component from cxkit-react-oss but leaving this here for reference / testing
268
+ // using the built in IkpMessage component from agents-ui but leaving this here for reference / testing
238
269
  const _IkpMessage: ComponentsConfig<Record<string, unknown>>['IkpMessage'] = (props) => {
239
270
  const { message, renderMarkdown, renderComponent } = props;
240
271
 
@@ -1,4 +1,4 @@
1
- import type { Message } from '@inkeep/cxkit-react-oss/types';
1
+ import type { Message } from '@inkeep/agents-ui/types';
2
2
  import { BookOpen, Check, ChevronRight, LoaderCircle } from 'lucide-react';
3
3
  import { type FC, useEffect, useRef, useState } from 'react';
4
4
  import supersub from 'remark-supersub';
@@ -82,6 +82,7 @@ export const Playground = ({
82
82
  projectId={projectId}
83
83
  tenantId={tenantId}
84
84
  customHeaders={customHeaders}
85
+ chatActivities={chatActivities}
85
86
  key={JSON.stringify(customHeaders)}
86
87
  />
87
88
  </ResizablePanel>
@@ -1,7 +1,4 @@
1
1
  import { ExpandableJsonEditor } from '@/components/form/expandable-json-editor';
2
- import { Input } from '@/components/ui/input';
3
- import { Label } from '@/components/ui/label';
4
- import { Textarea } from '@/components/ui/textarea';
5
2
  import type { ContextConfig, GraphMetadata } from '../../configuration/graph-types';
6
3
  import { SectionHeader } from '../section';
7
4
 
@@ -12,7 +9,7 @@ export function ContextConfigForm({
12
9
  contextConfig: ContextConfig;
13
10
  updateMetadata: (field: keyof GraphMetadata, value: GraphMetadata[keyof GraphMetadata]) => void;
14
11
  }) {
15
- const { id, name, description, contextVariables, requestContextSchema } = contextConfig;
12
+ const { contextVariables, headersSchema } = contextConfig;
16
13
 
17
14
  const updateContextConfig = (field: keyof ContextConfig, value: string) => {
18
15
  const updatedContextConfig = {
@@ -29,38 +26,6 @@ export function ContextConfigForm({
29
26
  description="Configure dynamic context for this graph."
30
27
  />
31
28
  <div className="flex flex-col space-y-8">
32
- <div className="space-y-2">
33
- <Label htmlFor="id">Id</Label>
34
- <Input
35
- id="id"
36
- value={id || ''}
37
- onChange={(e) => updateContextConfig('id', e.target.value)}
38
- placeholder="my-context"
39
- />
40
- <p className="text-xs text-muted-foreground">
41
- Choose a unique identifier for this configuration. Using an existing id will replace
42
- that configuration.
43
- </p>
44
- </div>
45
- <div className="space-y-2">
46
- <Label htmlFor="name">Name</Label>
47
- <Input
48
- id="name"
49
- value={name}
50
- onChange={(e) => updateContextConfig('name', e.target.value)}
51
- placeholder="My context"
52
- />
53
- </div>
54
- <div className="space-y-2">
55
- <Label htmlFor="description">Description</Label>
56
- <Textarea
57
- id="description"
58
- value={description}
59
- onChange={(e) => updateContextConfig('description', e.target.value)}
60
- placeholder="Context description..."
61
- className="max-h-96"
62
- />
63
- </div>
64
29
  <ExpandableJsonEditor
65
30
  name="contextVariables"
66
31
  label="Context variables (JSON)"
@@ -70,10 +35,10 @@ export function ContextConfigForm({
70
35
  className=""
71
36
  />
72
37
  <ExpandableJsonEditor
73
- name="requestContextSchema"
74
- label="Request context schema (JSON)"
75
- value={requestContextSchema}
76
- onChange={(value) => updateContextConfig('requestContextSchema', value)}
38
+ name="headersSchema"
39
+ label="Headers schema (JSON)"
40
+ value={headersSchema}
41
+ onChange={(value) => updateContextConfig('headersSchema', value)}
77
42
  placeholder="{}"
78
43
  className=""
79
44
  />
@@ -1,9 +1,9 @@
1
- import { type FC, type RefObject, useRef, type ComponentProps } from 'react';
2
- import { ExpandableField } from '@/components/form/expandable-field';
3
- import { Button } from '@/components/ui/button';
4
1
  import { Braces } from 'lucide-react';
5
- import { TooltipTrigger, Tooltip, TooltipContent } from '@/components/ui/tooltip';
2
+ import { type ComponentProps, type FC, type RefObject, useRef } from 'react';
3
+ import { ExpandableField } from '@/components/form/expandable-field';
6
4
  import { PromptEditor } from '@/components/form/prompt-editor';
5
+ import { Button } from '@/components/ui/button';
6
+ import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';
7
7
  import { cn } from '@/lib/utils';
8
8
 
9
9
  // Extract inner type from RefObject<T>
@@ -14,7 +14,7 @@ const PromptEditorWithAddVariables: FC<
14
14
  tooltipClassName: string;
15
15
  }
16
16
  > = ({ tooltipClassName, ...props }) => {
17
- const codemirrorRef = useRef<RefValue<typeof props.ref>>(null!);
17
+ const codemirrorRef = useRef<RefValue<typeof props.ref>>(null);
18
18
  const variablesText = 'Add variables';
19
19
  return (
20
20
  <div className="h-full relative">
@@ -30,16 +30,14 @@ const PromptEditorWithAddVariables: FC<
30
30
  )}
31
31
  type="button"
32
32
  onClick={() => {
33
- codemirrorRef.current.insertTemplateVariable();
33
+ codemirrorRef.current?.insertTemplateVariable();
34
34
  }}
35
35
  >
36
36
  <Braces className="h-4 w-4 text-muted-foreground" />
37
37
  <span className="sr-only">{variablesText}</span>
38
38
  </Button>
39
39
  </TooltipTrigger>
40
- <TooltipContent>
41
- {variablesText}
42
- </TooltipContent>
40
+ <TooltipContent>{variablesText}</TooltipContent>
43
41
  </Tooltip>
44
42
  </div>
45
43
  );
@@ -0,0 +1,194 @@
1
+ import type { Node } from '@xyflow/react';
2
+ import { useCallback, useEffect, useState } from 'react';
3
+ import { StandaloneJsonEditor } from '@/components/form/standalone-json-editor';
4
+ import { useNodeEditor } from '@/hooks/use-node-editor';
5
+ import type { FunctionToolNodeData } from '../../configuration/node-types';
6
+ import { InputField, TextareaField } from './form-fields';
7
+
8
+ interface FunctionToolNodeEditorProps {
9
+ selectedNode: Node<FunctionToolNodeData>;
10
+ }
11
+
12
+ export function FunctionToolNodeEditor({ selectedNode }: FunctionToolNodeEditorProps) {
13
+ const { getFieldError, setFieldRef, updatePath } = useNodeEditor({
14
+ selectedNodeId: selectedNode.id,
15
+ });
16
+
17
+ // Get data directly from node (like agents do)
18
+ const nodeData = selectedNode.data;
19
+
20
+ // Local state for form fields - initialize from node data
21
+ const [name, setName] = useState(String(nodeData.name || ''));
22
+ const [description, setDescription] = useState(String(nodeData.description || ''));
23
+ const [code, setCode] = useState(String(nodeData.code || ''));
24
+ const [inputSchema, setInputSchema] = useState(
25
+ nodeData.inputSchema ? JSON.stringify(nodeData.inputSchema, null, 2) : ''
26
+ );
27
+ const [dependencies, setDependencies] = useState(
28
+ nodeData.dependencies ? JSON.stringify(nodeData.dependencies, null, 2) : ''
29
+ );
30
+
31
+ // Sync local state with node data when node changes
32
+ useEffect(() => {
33
+ setName(String(nodeData.name || ''));
34
+ setDescription(String(nodeData.description || ''));
35
+ setCode(String(nodeData.code || ''));
36
+ setInputSchema(nodeData.inputSchema ? JSON.stringify(nodeData.inputSchema, null, 2) : '');
37
+ setDependencies(nodeData.dependencies ? JSON.stringify(nodeData.dependencies, null, 2) : '');
38
+ }, [nodeData]);
39
+
40
+ // Handle input schema changes with JSON validation
41
+ const handleInputSchemaChange = useCallback(
42
+ (value: string) => {
43
+ setInputSchema(value);
44
+
45
+ if (!value?.trim()) {
46
+ updatePath('inputSchema', undefined);
47
+ return;
48
+ }
49
+
50
+ try {
51
+ const parsed = JSON.parse(value);
52
+ updatePath('inputSchema', parsed);
53
+ } catch {
54
+ // Invalid JSON - don't update
55
+ }
56
+ },
57
+ [updatePath]
58
+ );
59
+
60
+ // Handle dependencies changes with JSON validation
61
+ const handleDependenciesChange = useCallback(
62
+ (value: string) => {
63
+ setDependencies(value);
64
+
65
+ if (!value?.trim()) {
66
+ updatePath('dependencies', undefined);
67
+ return;
68
+ }
69
+
70
+ try {
71
+ const parsed = JSON.parse(value);
72
+ updatePath('dependencies', parsed);
73
+ } catch {
74
+ // Invalid JSON - don't update
75
+ }
76
+ },
77
+ [updatePath]
78
+ );
79
+
80
+ // Handle name changes
81
+ const handleNameChange = useCallback(
82
+ (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {
83
+ const newName = e.target.value;
84
+ setName(newName);
85
+ updatePath('name', newName);
86
+ },
87
+ [updatePath]
88
+ );
89
+
90
+ // Handle code changes
91
+ const handleCodeChange = useCallback(
92
+ (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {
93
+ const newCode = e.target.value;
94
+ setCode(newCode);
95
+ updatePath('code', newCode);
96
+ },
97
+ [updatePath]
98
+ );
99
+
100
+ // Handle description changes
101
+ const handleDescriptionChange = useCallback(
102
+ (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {
103
+ const newDescription = e.target.value;
104
+ setDescription(newDescription);
105
+ updatePath('description', newDescription);
106
+ },
107
+ [updatePath]
108
+ );
109
+
110
+ return (
111
+ <div className="space-y-6">
112
+ <InputField
113
+ ref={(el) => setFieldRef('name', el)}
114
+ id="function-tool-name"
115
+ name="name"
116
+ label="Name"
117
+ value={name}
118
+ onChange={handleNameChange}
119
+ placeholder="Enter function tool name..."
120
+ error={getFieldError('name')}
121
+ isRequired
122
+ />
123
+
124
+ <TextareaField
125
+ ref={(el) => setFieldRef('description', el)}
126
+ id="function-tool-description"
127
+ name="description"
128
+ label="Description"
129
+ value={description}
130
+ onChange={handleDescriptionChange}
131
+ placeholder="Enter function tool description..."
132
+ error={getFieldError('description')}
133
+ isRequired
134
+ maxHeight="max-h-32"
135
+ />
136
+
137
+ <TextareaField
138
+ ref={(el) => setFieldRef('code', el)}
139
+ id="function-tool-code"
140
+ name="code"
141
+ label="Code"
142
+ value={code}
143
+ onChange={handleCodeChange}
144
+ placeholder="Enter function code here..."
145
+ error={getFieldError('code')}
146
+ isRequired
147
+ className="min-h-[200px] font-mono text-sm"
148
+ />
149
+
150
+ <div className="space-y-2">
151
+ <div className="text-sm font-medium">
152
+ Input Schema <span className="text-red-500">*</span>
153
+ </div>
154
+ <StandaloneJsonEditor
155
+ value={inputSchema}
156
+ onChange={handleInputSchemaChange}
157
+ placeholder={`{
158
+ "type": "object",
159
+ "properties": {
160
+ "param1": {
161
+ "type": "string",
162
+ "description": "Description of parameter 1"
163
+ },
164
+ "param2": {
165
+ "type": "number",
166
+ "description": "Description of parameter 2"
167
+ }
168
+ },
169
+ "required": ["param1"]
170
+ }`}
171
+ />
172
+ {getFieldError('inputSchema') && (
173
+ <p className="text-sm text-red-600">{getFieldError('inputSchema')}</p>
174
+ )}
175
+ </div>
176
+
177
+ <div className="space-y-2">
178
+ <div className="text-sm font-medium">Dependencies (Optional)</div>
179
+ <StandaloneJsonEditor
180
+ value={dependencies}
181
+ onChange={handleDependenciesChange}
182
+ placeholder={`{
183
+ "axios": "^1.6.0",
184
+ "lodash": "^4.17.21"
185
+ }`}
186
+ />
187
+ {getFieldError('dependencies') && (
188
+ <p className="text-sm text-red-600">{getFieldError('dependencies')}</p>
189
+ )}
190
+ </div>
191
+ </div>
192
+ );
193
+ }
194
+
@@ -61,7 +61,7 @@ export function MCPServerNodeEditor({
61
61
 
62
62
  const activeTools = getActiveTools({
63
63
  availableTools: availableTools,
64
- activeTools: toolData?.config?.mcp?.activeTools,
64
+ activeTools: toolData?.config && toolData.config.type === 'mcp' ? toolData.config.mcp.activeTools : undefined,
65
65
  });
66
66
 
67
67
  // Handle missing tool data
@@ -191,7 +191,7 @@ export function MCPServerNodeEditor({
191
191
  <Input
192
192
  id="url"
193
193
  name="url"
194
- value={toolData?.config?.mcp?.server?.url || ''}
194
+ value={toolData?.config && toolData.config.type === 'mcp' ? toolData.config.mcp.server.url : ''}
195
195
  onChange={handleInputChange}
196
196
  placeholder="https://mcp.inkeep.com"
197
197
  disabled